我有两个类,一个使用@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没有交易功能,我该怎么办?
答案 0 :(得分:1)
没有交易。在许多情况下,您可以重新构建文档以避免出现问题(嵌入文档,......)
您将始终需要先插入引用的文档。插入后,MongoDB服务器创建实体的ObjectId,然后在引用中使用。您可能希望在引用之前检查ID(简单检查null)。