我想为我的表设置主键自动增量.
这是我的班级.我已设置主键但我希望它是自动增量主键.
public class users extends RealmObject {
@PrimaryKey
private int id;
private long icn;
private String name;
private String email;
private String password;
private int phone;
public String getName() {
return name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public long getIcn() {
return icn;
}
public void setIcn(long icn) {
this.icn = icn;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getPhone() {
return phone;
}
public void setPhone(int phone) {
this.phone = phone;
}
}
提前致谢.
解决方法:
在事务中,您始终可以可靠地访问当前最大ID,您可以根据该ID增加该ID并将其用作下一个ID的基础.
realm.executeTransaction(new Realm.Transaction() { // must be in transaction for this to work
@Override
public void execute(Realm realm) {
// increment index
Number currentIdNum = realm.where(users.class).max(usersFields.ID);
int nextId;
if(currentIdNum == null) {
nextId = 1;
} else {
nextId = currentIdNum.intValue() + 1;
}
users user = new users(); // unmanaged
user.setId(nextId);
//...
realm.insertOrUpdate(user); // using insert API
}
}