GreenDao insert 解决 PRIMARY KEY must be unique

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

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

@Id(autoincrement = true)
private long _id;

结论:

  • 如果主键设置为包装类Long类型,那么在生成的Dao类中会有一个判断为null才插入,非null则更新
  • 如果是long类型,即使不传值,也会insert _id = 0,于是报异常
上一篇 解决strings.xml格式化占位符错误:Multiple substitutions specified in non-positional format
下一篇 Android WebView基本设置及监听设置
目录
文章列表
1 Flutter Widget之Material
Flutter Widget之Material
2
ElasticSearch 7 学习(4)文档的增删改查
ElasticSearch 7 学习(4)文档的增删改查
3
RecyclerView的点击事件处理
RecyclerView的点击事件处理
4
Katacoda - 免费学习 Kubernetes 利器
Katacoda - 免费学习 Kubernetes 利器
5
Spring Cloud开发pom.xml踩坑记录
Spring Cloud开发pom.xml踩坑记录
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。