我在查询最大ID值时遇到了问题,并且还希望将数据更新为最大ID。
public void addDataToRealm()
{
int key;
realm.beginTransaction();
detailsModel = realm.createObject(DetailsModel.class, id);
detailsModel.setName(name.getText().toString());
detailsModel.setPlace(place.getText().toString());
detailsModel.setAddress(address.getText().toString());
realm.commitTransaction();
id++;
}
在上面的代码中,我正在递增每个事务的id值。 是否有可能从领域数据库中获取最大id值,并需要更新最大id的值。请帮我解决这个问题。
答案 0 :(得分:6)
您可以尝试这样的事情:
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// Get the current max id in the EntityName table
Number id = realm.where(EntityName.class).max("id");
// If id is null, set it to 1, else set increment it by 1
int nextId = (id == null) ? 1 : id.intValue() + 1;
}
});
答案 1 :(得分:1)
我试过这个方法
int key;
key = realm.where(DetailsModel.class).max("id").intValue() + 1;
这种方法有效......
答案 2 :(得分:0)
尝试
int maxID = realm.where(DetailsModel.class).max("id").intValue();
现在你可以增加最大id值并使用它
int id = maxID + 1;