2017-03-06 63 views
-1

这是我的目标:Java的Android的境界检查,如果对象是存在的(检查两个)

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; 
    } 
} 

当我创建一个新的对象我想检查对象是存在这个相同的名字和这个相同的组名。对象名称可能在几个组中。这是我的代码,我如何保存对象:

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(); 
     } 
    } 
+0

什么是你的问题? – GhostCat

+0

@GhostCat我想检查是否存在的对象groupName和名称,我有,当不存在我想保存这个对象 –

回答

6

所以,最简单的方法是做一个查询并检查是否返回的对象为null:

+0

当我这样做总是一个对象是保存 –

+0

因此,使用我的代码,你最终得到重复的对象? – StarterPack

+0

好吧我认为我做错了什么 –