我正在编写一个使用Sugar ORM进行数据持久化的Android应用程序。我有一个案例,我从Web服务器获取objectID,这个ID需要与我在本地数据库上的记录ID相同。这样,我的数据记录将在以后保存时正确更新。
我遇到的问题是每当我扩展SugarRecord类时,Sqlite会覆盖我在对象中设置的ID。例如,我的Feed中的ID为2,但是当插入数据库时,ID将更改为1.
是否有任何方法可以阻止数据库使用Sugar ORM进行自动递增?
谢谢!
答案 0 :(得分:0)
在糖ORM中,具有autoincrement属性的主键默认设置为id列。尝试通过在Manifest文件中输入更高的数字来更新模式版本,并重命名变量(POJO类中的id变量)
答案 1 :(得分:0)
我有同样的问题,我通过覆盖我的模型类中的ID setter解决了这个问题:
public class MyClass extends SugarRecord {
@Unique
private Long id;
// default constructor for SugarRecord
public MyClass() {
}
@Override
public Long getId() {
return this.id;
}
@Override
public void setId(Long id) {
// Use "super" to overwrite
super.setId(id);
this.id = id;
}
}