MongoJack support@javax.persistence.Id不';行不通

MongoJack support@javax.persistence.Id不';行不通,java,mongodb,mongojack,Java,Mongodb,Mongojack,我使用MongoJack(2.0.0)从MongoDB序列化/反序列化对象。根据MongoJack的说法,它应该支持@javax.persistence.Id 我用@Id注释了对象变量 @Id private String id; 当我尝试用有效id保存对象时 jacksonDBCollection.save(myEntity); 对象将另存为新文档,而不是更新现有文档 我确实在模块中使用自定义反序列化程序,但没有序列化程序: ObjectMapper objectMapper = new

我使用MongoJack(2.0.0)从MongoDB序列化/反序列化对象。根据MongoJack的说法,它应该支持@javax.persistence.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被视为字符串而不是ObjectId。看起来对@javax.persistence.Id的支持不起作用

我试图找到支持这一点的来源,但运气不佳。有人能告诉我支持这一点的来源和/或让我知道我做错了什么吗


干杯。

在配置objectMapper时,还应调用:

MongoJackModule.configure(objectMapper);

注册检测和解释
@javax.persistence.Id
注释的程序。

我已经创建了一个序列化程序的解决方案。mongojack模块是org.mongojack.internal包的一部分,未在OSGi上下文中公开。我确实忘了提到我使用OSGi,因为它与这个问题无关。内部表示不应直接调用is。你知道如何以不同的方式配置它吗?Briljant!我在琢磨为什么
collection.updateById()
没有更新任何文档。这就解决了问题。