Java android领域检查对象是否存在(检查两个)

时间:2017-03-06 08:12:27

标签: java android realm

这是我的目标:

public class ObjectsInGroupRealm extends RealmObject {

    @PrimaryKey
    private Long id;
    private String name;
    private String groupName;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGroupName() {
        return groupName;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }
}

当我创建一个新对象时,我想检查对象是否存在同一个名称和同一个groupName。对象名称可以在几个组中。这是我保存对象的代码:

 public static void saveObjectsInGroup(ArrayList<String> objects, String groupName , Realm realm){

        for(String object : objects){

            ObjectsInGroupRealm objectsInGroupRealm = new ObjectsInGroupRealm();
            Long key;
            try {
                key = (Long) realm.where(ObjectsInGroupRealm.class).max("id") + 1;
            } catch (NullPointerException ex) {
                key = 0L; // when there is no object in the database yet
            }

            objectsInGroupRealm.setId(key);
            objectsInGroupRealm.setName(object);
            objectsInGroupRealm.setGroupName(groupName);
            realm.beginTransaction();
            realm.copyToRealm(objectsInGroupRealm);
            realm.commitTransaction();
        }
    }

1 个答案:

答案 0 :(得分:9)

所以最简单的方法是进行查询并检查返回的Object是否为null:

ObjectsInGroupRealm object = realm.where(ObjectsInGroupRealm.class)
    .equalTo("name", name)
    .equalTo("groupName", groupName)
    .findFirst();
 if(object == null){
     //add new object
 } else {
     //handle object already existing
 }