9月 042020
今天在执行如下操作时发现一个奇怪的问题,首先使用update更新数据库,然后select数据进行上传,结果select出来的数据总是旧数据。查了一天更新和上传那块的代码也没发现什么问题,后来发现是greenDao的问题。
问题:greenDao中创建DaoSession对象时默认是使用缓存的,这样select出来的数据可能就不是最新的
解决方法:
方法一:创建DaoSession对象的时候传入IdentityScopeType.None参数默认禁止缓存,示例如下:
1 2 |
mDaoMaster = new DaoMaster(db); mDaoSession = mDaoMaster.newSession(IdentityScopeType.None); |
方法二:在select的时候执行一下DaoSession对象的clear方法(注:本方法笔者未验证是否有其他问题,请谨慎使用),如下:
1 |
getDaoSession().clear();; |
Sorry, the comment form is closed at this time.