我有一个articles的列表.
这些文章是通过使用realm.copyToRealmOrUpdate()插入的;效果很好.
现在,每篇文章都有一个authorID,不应保留它.而是我想找到存储的author RealmObject并为文章设置其关系.
Author author = realm.where(Author.class).equalTo("ID", article.getSerializedAuthor()).findFirst();article.setAuthor(author);
以某种方式,这似乎不是领域所坚持的.
同样适用于image 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<Image>()); } article.getimages().add(image); }}realm.commitTransaction();
如果您需要更多信息,请告诉我.
谢谢.
解决方法:
来自Realm的基督徒.您将继续 *** 作刚刚复制到Realm的独立对象,因为它们仍然是独立对象,而不是“适当”的Realm对象,因此无法使用.您可以在这里了解更多信息:http://realm.io/docs/java/0.80.0/#creating-objects和JavaDoc http://realm.io/docs/java/0.80.0/api/io/realm/Realm.html#copyToRealm-E-
因此,如果将代码更改为类似以下内容,则它应该可以工作:
realm.executeTransaction(new Realm.Transaction() { @OverrIDe public voID execute(Realm realm) { List<Article> 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); } } }});
总结 以上是内存溢出为你收集整理的java-保存领域关系不会持久化它们全部内容,希望文章能够帮你解决java-保存领域关系不会持久化它们所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)