如何在Android中的Realm中设置唯一主键? Realm文档说我不能使用除String或int / long之外的任何东西,那么UUID类型也是不可能的吗?如果我有同名的物品怎么办?
e.g。
public class GroceryItem extends RealmObject {
@PrimaryKey
private long id; <--- how can I make this unique without UUID?
private String name;
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;
} }
答案 0 :(得分:6)
Realm不支持主键的任何自动增量。有关此问题的详情,请访问docs。所以,你要自己处理它。
1)使用应该使用UUID。您还可以从中获取long,int或String值:
long: UUID.randomUUID().getMostSignificantBits();
int: (int) UUID.randomUUID().getMostSignificantBits();
String: UUID.randomUUID().toString();
2)或者您可以从数据库中查询某些数据并应用一些规则来生成新密钥。例如,查询最后一个元素并增加它的主键。但那不是理想的方式。