GreenDao insert 解决 PRIMARY KEY must be unique

  1. 如果主键标记时没有添加autoincrement,那么就是传的id重复了, 传的时候获取最新id然后++id即可

  2. 如果标记@Id(autoincrement = true),按理不用手动传id的,也确实没传,还报not unique的话,那么 GreenDao的主键必须设置成包装类 Long

1
2
@Id(autoincrement = true)
private long _id;

结论:

  • 如果主键设置为包装类Long类型,那么在生成的Dao类中会有一个判断为null才插入,非null则更新
  • 如果是long类型,即使不传值,也会insert _id = 0,于是报异常

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :