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 AWS Transfer Family 搭建SFTP服务器
AWS Transfer Family 搭建SFTP服务器
2
Redis单体及集群支持的数据库数量
Redis单体及集群支持的数据库数量
3
Android SSL Pinning(防止中间人攻击)
Android SSL Pinning(防止中间人攻击)
4
Android Jetpack架构组件(六)Navigation简单使用
Android Jetpack架构组件(六)Navigation简单使用
5
Bigcommerce自定义收银台
Bigcommerce自定义收银台
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。