2013-01-11 29 views
0

缺少参考我有两个类,一个参考另一个通过使用@Reference 当插入我将插入所引用的一个第一和后面插入与参考字段的对象。当我在大多数时间。但有时会接他们 一切正常,我有例外像我MongoDB中与吗啡

重度:了java.lang.RuntimeException: com.google.code.morphia.mapping.MappingException:参考({ “$ REF”: “UserContactLink”, “$标识”: “50e92481cde5dadc12ff854b”}) 无法抓取的net.shisoft.db.obj.UserContact.ucs

当我检查了ID在UserContactLink,并没有这个文件与此ID。我想这是因为我终止mongod的最后时间和交易(以我的观点)的进展情况并没有结束,数据关系已被损坏。 似乎MongoDB中没有交易功能,我能做些什么这个问题?

回答

1
  1. 没有交易。在很多情况下,你可以调整你的文件,以避免与问题(嵌入文档,...)

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

+0

我不使用嵌入式文档的一个原因是因为他们不能被查询。但是,谢谢。 – Shisoft

+0

嵌入文档也可以查询通过点notatiton实际。 http://docs.mongodb.org/manual/core/read-operations/#read-operations-subdocuments – cubbuk