greendao有缓存策略
AbstractDao.loadCurrent 方法,identityScope,会先从此缓存中,获取缓存的内容,从而可能导致我们查询到的值和数据库中不一致(当你第一次从库中,取到了实体,并对实体进行了修改后,后面再次相同的sql查询时,会从内存缓存中取数据,这时候我们取到的值,就是我们修改后的实体,而不是数据库中的那一套数据了),所以当我们需要取的值和数据库一摸一样时,我们需要先清一遍greendao的缓存,然后再查询,但如果我们的操作并没有涉及到修改实体,那我们其实是没有必要清空缓存的,因为从缓存中取值会提高我们的效率,但如果我们修改了实体并且没有更新库,后面需要从数据库中取到真实数据时,我们就需要清空缓存了。
网友评论