如何让我的模型独一无二?

时间:2017-07-22 15:21:19

标签: dbaccess

public void loadInventory(Graphics g){
    for (int i = 0; i < slot.length; i++){
        if(item != null){
            if (slot[i] == null) {
                slot[i] = "";
            }
         }  if (slot[i] != null){               
                g.drawString(item.getName() + ": " + itemGroup.size(), 400, 100 + (i * 25));
            }
    }

Evertime我从服务器获取项目,相同的项目将插入到dataTable中,因此数据表中有许多相同的项目。 如何使r_id或r_name唯一????

1 个答案:

答案 0 :(得分:0)

SRKObject上的唯一键是Id列,因此,只有首先使用查询才能以您建议的方式工作。检索一个对象,如果它不存在则创建一个新对象。

示例:

SRKObject* myObject = [[[[[DLRSS query] whereWithFormat:@"r_id = %@", r_idValue] limit:1] fetch] firstObject];
if (!myObject) {
   myObject = [DLRSS new];
}

或者,如果你不喜欢到处都这样做,那就把它放到对象本身。

- (BOOL)entityWillInsert {
   // count operations are very fast here
   if ([[[[DLRSS query] whereWithFormat:@"r_id = %@", self.r_id] limit:1] count]) {
      // setting the Id column to an existing one will cause  areplace when `INSERT OR REPLACE INTO DLRSS` is triggered.
      self.Id = [[[[[DLRSS query] whereWithFormat:@"r_id = %@", self.r_id] limit:1] distinct:@"Id"] objectAtIndex:0];
   }
}