我有一个缺失的参考mongodb与吗啡



我有两个类,一个引用另一个使用@Reference插入时,我将首先插入引用的对象,然后插入具有引用字段的对象。大多数情况下,当我取回它们时,一切都很好。但有时,会出现像

这样的异常

严重:java.lang.RuntimeException:mappingexception:引用({"$ref": "UserContactLink", "$id": "50e92481cde5dadc12ff854b"})

<.shisoft.db.obj. usercontact .ucs>

当我检查UserContactLink中的id时,没有这个id的文档。我认为这是因为我上次终止了mongod的进度,我认为事务没有完成,数据关系已经损坏。似乎mongodb没有事务功能,我能做些什么与这个问题?

  1. 没有事务。在很多情况下,你可以重构你的文档来避免这样的问题(嵌入文档,…)

  2. 您总是需要首先插入所引用的文档。在插入时,MongoDB服务器创建实体的ObjectId,然后在引用中使用。您可能需要在引用之前检查ID(简单检查null)。

最新更新