greenDAO文档翻译之四:会话
来源:互联网 发布:高新区山东广电网络 编辑:程序博客网 时间:2024/05/18 01:29
(生成的)DaoSession
类是greenDAO核心接口之一。DaoSession
提供给开发者通道操作基础实体和DAO类更多完整的一系列操作。另外,会话还管理着实体的域标识。
DaoMaster和DaoSession
正如在如何开始部分文档里写的,你需要创建一个DaoMaster
对象来得到DaoSession
:
daoMaster = new DaoMaster(db);daoSession = daoMaster.newSession();
注意数据库连接属于DaoMaster
,所以多个会话指向同一个数据库连接。因此,新会话可以被创建得十分快。虽然如此,每一个会话分配了着内存,通常是一个实体的会话“缓存”缓存。
域标识和会话
如果你想两次查询返回同样的数据库对象,那需要有多少个Java对象与你一起工作:一个还是两个?这完全取决于域标识。
默认情况下(这个行为是可配置的),greenDAO里对于多次的查询会返回同一个Java对象的引用。举个例子,有两次查询,需要从USER
表中加载一个ID是42的User
对象会返回同一个Java对象。
这样做的一个副作用是会有很多的实体“缓存”。如果一个实体对象仍在存在于内存中(这里greenDAO使用弱引用),这个实体不会被再次构建。同样,greenDAO也不会再去查询数据库来更新实体的数值。相反的,对象会“立刻”从会话缓存中返回,速度要快上一到两个数量级。
清除域标识
要清除整个会话的域标识所以没有“被缓存”的对象返回:
daoSession.clear();
要清除一个DAO的域标识:
noteDao = daoSession.getNoteDao();noteDao.detachAll();
概念
当前这个页面的文档信息很有限。请参考Hibernate的会话文档获取会话和域标识的全面概念。
原文档在这里,欢迎指正。
阅读全文
0 0
- greenDAO文档翻译之四:会话
- GreenDao官方文档翻译(四)之Sessions
- greenDAO文档翻译之二:介绍
- GreenDao官方文档翻译之(一)开始使用GreenDao
- GreenDao官方文档翻译
- GreenDao官方文档翻译
- greenDAO文档翻译之三:模型化实体
- GreenDao官方文档翻译上
- GreenDao官方文档翻译下
- GreenDao官方文档翻译上
- GreenDao官方文档翻译下
- [翻译]Wintermute联机文档之四
- Flume官方文档翻译之(四)
- GreenDao官方文档翻译上 下
- greenDAO文档翻译一:如何开始
- GreenDao官方文档翻译(三)之模型化实体-Schema & Annotations
- 【翻译】Emmet(Zen Coding)官方文档 之四 动作
- RabbitMQ官方文档翻译之Routing(四)
- Leetcode 39. Combination Sum
- 【java知识点异常】throw new RuntimeException(e)与e.printStackTrace( )的区别
- A. Straight «A»
- Hello CSDN
- 2017/6/22
- greenDAO文档翻译之四:会话
- HTTP相关
- 二维图形的矩阵变换(一)——基本概念
- 市面上常用的网络通讯技术
- 记第一次写博客
- VR系列——Oculus Rift 开发者指南:六、Oculus触控
- tensorflow-搭建两层神经网络
- STM32F103 SDIO(一)
- 小问题笔记