gpt4 book ai didi

android - Realm 使用主键插入或更新对象

转载 作者:行者123 更新时间:2023-11-29 15:37:38 27 4
gpt4 key购买 nike

我不确定我是否理解它们之间的区别:
如我所见,realm.createObject 无法真正更新现有键(出现错误:主键值已存在)

选项 1:

    try (Realm realm = Realm.getDefaultInstance()) {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(@NonNull Realm realm) {
CacheFastObjTest a = realm.createObject(CacheFastObjTest.class, key);
a.setDataType(className.getName());
a.setExpireTimestamp(expires.getTime());
a.setText1("dsaf");
a.setText2("234234324");
realm.insertOrUpdate(a);
}
});
}

选项 2:

    try (Realm realm = Realm.getDefaultInstance()) {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(@NonNull Realm realm) {
CacheFastObjTest a = new CacheFastObjTest();
a.setKey(key);
a.setDataType(className.getName());
a.setExpireTimestamp(expires.getTime());
a.setText1("dsaf");
a.setText2("234234324");
realm.insertOrUpdate(a);
}
});
}

最佳答案

CacheFastObjTest a = realm.where(CacheFastObjTest.class).equalTo("id", key).findFirst();
if(a == null) {
a = realm.createObject(CacheFastObjTest.class, key);
}
a.setDataType(className.getName());
a.setExpireTimestamp(expires.getTime());
a.setText1("dsaf");
a.setText2("234234324");
//realm.insertOrUpdate(a);

关于android - Realm 使用主键插入或更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46512586/

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