GreenDao主键自增踩的坑

本文介绍在使用GreenDao框架进行Android应用开发时遇到的一个关于主键自增类型的常见问题。作者分享了如何正确地定义实体类的主键属性以实现自增功能,并解决了因类型不当导致的主键唯一性冲突错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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了。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值