嗨朋友我是新手,当我的json更新我需要更新我的领域数据库但我无法看到更新的JSON值在该领域我无法理解为什么它发生这样的请帮助我出
final JSONArray userarray = response.getJSONArray("user");
final Realm invoicerealm = Realm.getDefaultInstance();
invoicerealm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// realm.delete(Upcoming_requests_adapter.class);
invoicerealm.createAllFromJson(Upcoming_requests_adapter.class,userarray);
}
});
答案 0 :(得分:1)
首先,如果需要更新数据库,则透视RealmObject应包含将在其上执行更新操作的主键。这意味着 -
Upcoming_requests_adapter.java应该有一个主键。
如果它包含主键,则以下事务将创建新的RealmObject或将更新现有的RealmObject依赖于主键。
final Realm invoicerealm = Realm.getDefaultInstance();
invoicerealm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.createOrUpdateAllFromJson(Upcoming_requests_adapter.class, userarray);
}
});
答案 1 :(得分:0)
使用主键可以使用 copyToRealmOrUpdate() 方法,它将查找具有此主键的现有对象, 如果找到,则更新它;如果没有找到,它将创建一个新的 反而是对象。在没有的类上调用 copyToRealmOrUpdate()时 主键,将抛出异常。
您可以从以下示例中获得参考:
final MyObject obj = new MyObject(); //Your realm object class
obj.setId(42);
obj.setName("Fish");
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// This will update an existing object with the same primary key
// or create a new object if an object with no primary key = 42
realm.copyToRealmOrUpdate(obj);
}
});