gpt4 book ai didi

android - 如何在 Realm android数据库中存储java列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:39:20 26 4
gpt4 key购买 nike

我们如何将 java 列表存储在 realm android 数据库中。我尝试使用我的模型中存在的 setter 方法来存储它,但它不起作用,并且我在异常消息中收到“'value' 的每个元素必须是有效的托管对象”。

public void storeNewsList(String categoryId, List<News> newsList) { 
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
NewsList newsListObj = realm.createObject(NewsList.class);
newsListObj.setNewsList(new RealmList<>(newsList.toArray(new News[newsList.size()])));
newsListObj.setCategoryId(categoryId);
realm.commitTransaction();
realm.close();
}

最佳答案

将代码替换为

public void storeNewsList(String categoryId, List<News> newsList) { 
try(Realm realm = Realm.getDefaultInstance()) {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
NewsList newsListObj = new NewsList(); // <-- create unmanaged
RealmList<News> _newsList = new RealmList<>();
_newsList.addAll(newsList);
newsListObj.setNewsList(_newsList);
newsListObj.setCategoryId(categoryId);
realm.insert(newsListObj); // <-- insert unmanaged to Realm
}
});
}
}

关于android - 如何在 Realm android数据库中存储java列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43738163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com