我有一个模型类,使用它保存到领域。如何使用`contains()`来查看对象是否已经存储

时间:2015-05-24 13:21:07

标签: java android realm

这是模型类 -

public class BasicSavedInfoImpl extends RealmObject implements BasicSavedInfo {

    private String iD;

    @Override
    public String getID() {
        return iD;
    }

    @Override
    public void setID(String ID) {
        this.iD= ID;
    }


}

以下是我如何将id写入领域 -

realm.beginTransaction();
        BasicSavedInfoImpl basicSavedInfoImpl = realm.createObject(BasicSavedInfoImpl.class);
        basicSavedInfoImpl.setID(id);
        realm.commitTransaction();

如何检查它的领域是否已包含id?

1 个答案:

答案 0 :(得分:1)

您要使用的任何理由包含?以下将更精确:

BasicSavedInfoImpl obj = realm.where(BasicSavedInfoImpl.class).equalTo("id", id).findFirst();
if (obj != null) {
  // success
}

如果你想使用包含以下应该工作

RealmResults<BasicSavedInfoImpl> objs = realm.where(BasicSavedInfoImpl.class).contains("id", id).findAll();
if (objs.size() > 0) {
  // success
}

但是包含可能会匹配你不想要的ID,即。 contains("id", "a")也会匹配ID的"ab", "abc", "ba",依此类推。