Android使用GreenDao来管理数据库很是方便,最近使用GreenDao设置主键id自增,踩到个坑,在此记录。
bean类声明主键自增:
@Entity
public class Person {
@Id(autoincrement = true)
private long id;
private String name;
private String age;
结果插入数据时,报如下错误:
android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: PERSON._id (code 1555)
说是主键必须是唯一的,主键不是自增的吗?怎么会不唯一呢?原来原因是主键自增类型必须是Long(注意是大写的L),而不是小写的long类型。修改后再运行,ok了。