GreenDAO踩过的那些坑
程序员文章站
2024-01-21 19:19:16
...
GreenDao据说是效率最高的orm框架,这次公司项目需要,想起来就用了,没想到一连踩了两个坑,加班加点,活了一天半的时间才解决,为了纪念一下这个难忘的记忆,以及帮助后来人躲过这些坑,特将其一一叙述。
一、接入
给到大家github地址:https://github.com/greenrobot/greenDAO 按照上面的接入流程,按部就班,相信大家都会,这里就不详叙。
二、踩坑之一:bean实体里面写了注释
根据项目需求写了如下一个实体
@Entity
class VoltageEntity{
@Id
private long id;
private long time;//读取电压时的时间,精确到天
private float voltage
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getTime() {
return time;
}
public void setTime(long time) {
this.time = time;
}
public float getVoltage() {
return voltage;
}
public void setVoltage(float voltage) {
this.voltage = voltage;
}
编译的时候你会发现不通过,相应的DaoMaster、DaoSession、VoltageEntityDao编译的时候不会重新生成,这时候有可能是因为你在实体里面加了注释,这时候可以尝试把注释去掉。
三、踩坑之二:id声明为long
尝试插入数据,你会发现报错:Caused by: android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: xxx._id (code 1555)
这时候把id的类型由long改为Long即可。
上一篇: php运用beanstalkd 过程分享