我有一个CollectibleCodec<Thing>
用于与MongoDB数据库连接:
public class ThingCodec implements CollectibleCodec<Thing> { /* ... */ }
// ...
MongoCollection<Thing> things = database
.withCodecRegistry(CodecRegistries.fromCodecs(new ThingCodec()))
.getCollection("things", Thing.class);
通过这个编解码器读取和编写Thing
的工作正常,但有一个问题:ThingCodec.generateIdIfAbsentFromDocument(Thing)
方法永远不会被调用,所以除非我没有ID,所以这些东西都保存在数据库中在保存之前设置ID。有没有办法配置MongoDB驱动程序在我插入或更新集合中的项目时自动调用此方法?
答案 0 :(得分:0)
当然,一种简单的方法是在public class ThingCodec implements CollectibleCodec<Thing> {
@Override
public void encode(BsonWriter writer, Thing value, EncoderContext context) {
generateIdIfAbsentFromDocument(value);
// Do encoding
}
// ...
}
本身中执行此操作:
$block['content'] = $output;