如何获取最大id值并将数据更新为id?

时间:2017-05-24 10:34:15

标签: android realm

我在查询最大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的值。请帮我解决这个问题。

3 个答案:

答案 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;