Android会议室 - 自动生成主键

时间:2017-09-08 09:16:37

标签: android android-room

我遇到了一个问题,我无法找到适用于Android的Room和自动生成主键的任何文档。

我有一个看起来像这样的实体类:

@Entity
public class Preference {

    @PrimaryKey(autoGenerate = true)
    private int id;

    public void setId(int id) {

        this.id = id;

    }

}

当我手动设置id时,这工作正常,但是当我没有设置主键时,我收到关于主键为null的错误。查看自动生成的文件,我无法看到它会自动递增主键。

所以我想我的问题是这样的:你可以用setter自动生成私有成员的主键吗?或者我需要在setter中手动自动生成我的密钥?

1 个答案:

答案 0 :(得分:6)

好的,所以这段代码由于成员为null而不能生成id成员我要么必须将其设置为Integer对象,在这种情况下,当成员等于null时,它将自动生成一个新的id ,或者,我需要在初始化对象时将其设置为等于0。

我已将其设置为整数,可以完美修复我的问题。

@Entity
public class Preference {

    @PrimaryKey(autoGenerate = true)
    private Integer id;

    public void setId(Integer id) {

        this.id = id;

    }

}