我在mongodb中找到了一个缺少morphia的参考文献

时间:2013-01-11 17:35:28

标签: mongodb transactions morphia

我有两个类,一个使用@Reference引用另一个 插入时,我将首先插入引用的一个,然后插入带有引用字段的对象。 当我在大部分时间内获取它们时,一切正常。但有时,我得到了像

这样的例外
  

SEVERE:java.lang.RuntimeException:   com.google.code.morphia.mapping.MappingException:引用({   “$ ref”:“UserContactLink”,“$ id”:“50e92481cde5dadc12ff854b”})   无法获取net.shisoft.db.obj.UserContact.ucs

当我检查UserContactLink中的ID并且没有此ID的文档时。我想这是因为我上次终止了mongod的进度而且事务(在我看来)没有完成,数据关系已经被破坏了。 似乎mongodb没有交易功能,我该怎么办?

1 个答案:

答案 0 :(得分:1)

  1. 没有交易。在许多情况下,您可以重新构建文档以避免出现问题(嵌入文档,......)

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