greenDao缓存踩坑

 分类:Android, Java 阅读 (56)
9月 042020
 

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

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

  解决方法:

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

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

 

打赏

Sorry, the comment form is closed at this time.