1
嵌入文檔我使用蒙戈-Java的應用程序在我的應用程序來讀取和寫入數據的MongoDB。寫碼器用於在MongoDB中的Java驅動程序
我有類這樣的 -
public A{
private String a;
//Getters & Setters
}
public class B{
private String b;
private List<A> a;
//Getters & Setters
}
public class C{
private String c;
private B b;
//Getters & Setters
}
我創建編解碼器的類的C這樣的 -
public class CCodec implements Codec<C> {
private Codec<Document> documentCodec;
public CCodec(CodecRegistry registry) {
documentCodec = registry.get(Document.class);
}
@Override
public void encode(BsonWriter writer, C c, EncoderContext context) {
Document document = new Document();
document.put("c",c.getC());
document.put("b",c.getB());
documentCodec.encode(writer, document, context);
}
}
編解碼器,B類 -
public class BCodec implements Codec<B> {
private Codec<Document> documentCodec;
public CCodec(CodecRegistry registry) {
documentCodec = registry.get(Document.class);
}
@Override
public void encode(BsonWriter writer, B b, EncoderContext context) {
writer.writeStartDocument();
writer.writeString("b",b.getB());
//How to encode A Here
writer.writeEndDocument();
}
}
我不能在BCodec中進行編碼,就像我爲CCodec做的一樣,因爲當我說
Document document = new Document();
它創建一個新的文件,但我wan't要把它嵌入在文件C.
現在的問題是怎樣在B級編碼類型列表的領域? 請參閱BCodec類的編碼方法。不用說我已經在CodecProvider中添加了所有的編解碼器。
任何幫助表示讚賞。
它是如何從我有上面寫的有什麼不同? –
@RaviKumar ** //如何編碼A在這裏**在你的代碼中已被回答。 *我如何編碼B類中List類型的字段?*是在解碼B中將編碼後的A編碼到列表中的地方。 – nullpointer