Android必知必会--GreenDao缓存

标签: android 缓存 greendao
6191人阅读 评论(5) 收藏 举报
分类:

本篇文章不是介绍GreenDao的配置和基础使用,记录一下GreenDao缓存的问题,帮助遇到同样问题的朋友找到原因和方法,下面是示例:

场景重现

//第一次查询
List chats = daoSession.getChatSessionDao()
    .queryBuilder()
    .orderDesc(ChatSessionDao.Properties.Updatetime)
    .list();

//对数据库中的一条数据进行更新:
ChatSession cs = chats.get(0);
Log.d("body",cs.getBody());
cs.setBody(cs.getBody() + "new");
daoSession.getChatSessionDao().update(cs);

//第二次查询
List chats = daoSession.getChatSessionDao()
    .queryBuilder()
    .orderDesc(ChatSessionDao.Properties.Updatetime)
    .list();

Log.d("body",chats.get(0).getBody());

结果发现两次的body的值是一样的,使用工具查看Sqlite数据库,发现body的值已经变化了,也就是说,我们第二次查询并没有真正执行,返回的是第一次查询的结果。如果要解决缓存问题,这里就要用到DaoSession的一个方法:

DaoSession.clear();

在示例代码中应该写在第二次查询前面

daoSession.clear();
//第二次查询
......

PS:这个清理缓存的方法,会清除所有表的缓存,目前没有发现可以清除单个表或者某个查询的缓存的方法。

GreenDao配置与使用

GreenDao详细的配置和Demo可以参考:

  1. ORM 框架之 greenDAO 使用心得
  2. GreenDao

PS:

你可以关注的我GithubCSDN微博

查看评论

Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite

Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite 前不久,我在写了ORMLite这个框架的博文Android数据库框架——ORMLite轻量级的对象关系映...
  • qq_26787115
  • qq_26787115
  • 2016-07-03 14:51:33
  • 16481

Greendao 查询不到真实数据的解决方法 清除greendao缓存

项目的数据库查询是用的greendao  结果发现查询到的数据竟然是内存中修改后的 数据! 通过查询资料发现了罪魁祸首!greendao的缓存机制! 记录一下清除greendao 缓存的方法 ...
  • qq_27192795
  • qq_27192795
  • 2017-11-02 09:38:41
  • 940

GreenDao查询数据带缓存

GreenDao查询数据带缓存问题记录:查询某一个dao该到里面存有一个bean如下:@Entity class test{ private String s1; private Strin...
  • shayubuhuifei
  • shayubuhuifei
  • 2017-11-30 18:10:23
  • 225

GreenDao3.2表关联、缓存

  • 2017年03月28日 10:36
  • 1.2MB
  • 下载

ORM缓存框架GreenDao的简单使用

GreenDao的简单应用
  • qq_32143399
  • qq_32143399
  • 2016-11-18 14:46:43
  • 356

GreenDao学习笔记——初始化和增删改查

android
  • Chen_Victor
  • Chen_Victor
  • 2016-01-24 18:40:02
  • 4785

GreenDao有缓存的问题。根据ID查询 修改一个值 三种方法

GreenDao有缓存的问题。根据ID查询 修改一个值 三种方法@Override//方法1 public void updateIsSave(List recordIdList) { Que...
  • L_XING_ZHI
  • L_XING_ZHI
  • 2016-09-08 16:47:50
  • 349

Android-GreenDao增删改查以及底层实现简介

GreenDao 初始化: public voidinitDB(Context context,String dbName) { this.context= context; DaoMas...
  • a214024475
  • a214024475
  • 2016-11-14 13:14:34
  • 662

GreenDao的使用方法

GreenDao的使用方法详解 ---------------------- GreenDao orm数据库框架 优势: 1:性能最大化 2:内存...
  • qq_15807167
  • qq_15807167
  • 2016-06-30 11:34:24
  • 10904

(一)GreenDao3.0的简单使用

一.@Entity:实体 在类中设置 可以创建与实体相关联的表 (1)schema = “myschema”, 当程序中有多个secema(数据库)时,可以选择我们想要的一个。 (2)activ...
  • liuchao9876543210
  • liuchao9876543210
  • 2017-01-12 16:01:02
  • 5579
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 32万+
    积分: 3710
    排名: 1万+
    博客专栏
    最新评论
    样式调整