我正在使用 MongoJack (2.0.0) 从 MongoDB 序列化/反序列化对象。根据http://mongojack.org/index.html MongoJack 应该支持@javax.persistance.Id。
我用@Id 注释了对象变量
@Id
private String id;
当我尝试使用有效 ID 保存对象时
jacksonDBCollection.save(myEntity);
该对象被保存为新文档,而不是更新现有文档。
我确实使用了自定义反序列化器,但在我的模块中没有序列化器:
ObjectMapper objectMapper = new ObjectMapper();
SimpleModule module = new SimpleModule("MyModule", Version.unknownVersion());
module.addDeserializer(MyEntity.class, new MyEntityJsonDeserializer());
objectMapper.registerModule(module);
return objectMapper;
我调试了一些代码,发现在调用 jacksonDBCollection.save(myEntity) 时,id 被视为 String 而不是 ObjectId。看起来对 @javax.persistance.Id 的支持不起作用。
我试图找到支持它的来源,但没有运气。谁能指出我支持的来源和/或让我知道我做错了什么?
干杯。