Sugar ORM会从Feed中覆盖ID

时间:2016-05-29 11:45:46

标签: android sqlite sugarorm

我正在编写一个使用Sugar ORM进行数据持久化的Android应用程序。我有一个案例,我从Web服务器获取objectID,这个ID需要与我在本地数据库上的记录ID相同。这样,我的数据记录将在以后保存时正确更新。

我遇到的问题是每当我扩展SugarRecord类时,Sqlite会覆盖我在对象中设置的ID。例如,我的Feed中的ID为2,但是当插入数据库时​​,ID将更改为1.

是否有任何方法可以阻止数据库使用Sugar ORM进行自动递增?

谢谢!

2 个答案:

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