greenDao缓存踩坑

 分类:Android, Java 阅读 (1,547)  greenDao缓存踩坑已关闭评论
9月 042020
 

  今天在执行如下操作时发现一个奇怪的问题,首先使用update更新数据库,然后select数据进行上传,结果select出来的数据总是旧数据。查了一天更新和上传那块的代码也没发现什么问题,后来发现是greenDao的问题。

  问题:greenDao中创建DaoSession对象时默认是使用缓存的,这样select出来的数据可能就不是最新的

  解决方法:

  方法一:创建DaoSession对象的时候传入IdentityScopeType.None参数默认禁止缓存,示例如下:

  方法二:在select的时候执行一下DaoSession对象的clear方法(注:本方法笔者未验证是否有其他问题,请谨慎使用),如下:

 

greenDAO混淆配置

 分类:Android, Java 阅读 (4,072)  No Responses »
1月 092017
 

如果你的项目中使用了greenDAO并且使用了混淆,那么请为greenDAO增加混淆配置,如下:

官方原文地址:http://greenrobot.org/greendao/documentation/updating-to-greendao-3-and-annotations/#Step_1_Update_dependencies_to_V3

8月 022016
 

1.首先要有一个Long型的主键

2.该主键的初始值要赋值为null

 

如下:

原理是:

当id的初始值设为null时,执行insert into 语句时,id的值也为null,然后数据库系统会自己计算这个,如下这个sql语句