保存领域关系不会持久存在

我有一份文章清单。
使用realm.copyToRealmOrUpdate();插入这些文章realm.copyToRealmOrUpdate(); 哪作得很好。

现在每篇文章都有一个不应该持久化的authorId。 相反,我想找到存储的作者RealmObject并设置它与文章的关系。

 Author author = realm.where(Author.class).equalTo("id", article.getSerializedAuthor()).findFirst(); article.setAuthor(author); 

以某种方式,这似乎并没有被领域所持久。

这同样适用于图像RealmObject ,就像我在保存之前迭代一样。

这是完整的片段。

 realm.beginTransaction(); realm.copyToRealmOrUpdate(articles.data); for(Article article : articles.data) { Author author = realm.where(Author.class).equalTo("id", article.getSerializedAuthor()).findFirst(); article.setAuthor(author); for (Image image : article.getSerializedImages().data) { if (article.getImages() == null) { article.setImages(new RealmList()); } article.getImages().add(image); } } realm.commitTransaction(); 

如果您需要更多信息,请与我们联系。
谢谢。

来自英国的基督徒在这里。 您继续操作刚刚复制到Realm的独立对象,这些对象无法工作,因为它们仍然是独立对象而不是“正确”的Realm对象。 你可以在这里阅读更多内容: http : //realm.io/docs/java/0.80.0/#creating-objects和JavaDoc http://realm.io/docs/java/0.80.0/api/io/境界/ Realm.html#copyToRealm-E-

因此,如果您将代码更改为类似下面的代码,它应该工作:

 realm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm realm) { List
realmArticles = realm.copyToRealmOrUpdate(articles.data); for(Article article : realmArticles) { Author author = realm.where(Author.class).equalTo("id", article.getSerializedAuthor()).findFirst(); article.setAuthor(author); for (Image image : article.getSerializedImages().data) { article.getImages().add(image); } } } });

你在用GSON吗? 如果是这样,您是否按照http://realm.io/docs/java/0.80.0/#gson中列出的示例进行操作?