Hibernate内部运行机理
2013-08-23 14:39
162 查看
Hibernate 的缓存体系
一级缓存:
Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象。
每个Session 都有自己独立的缓存,且只能被当前工作单元访问。
二级缓存:
SessionFactory的外置的可插拔的缓存插件。其中的数据可被多个Session共享访问。
SessionFactory的内置缓存:存放了映射元数据,预定义的Sql语句。
Hibernate 中Java对象的状态
1.临时状态 (transient)
1不处于Session 缓存中
2数据库中没有对象记录
何时进入临时状态?
1通过new语句刚创建一个对象时
2当调用Session 的delete()方法,从Session 缓存中删除一个对象时。
2.持久化状态(persisted)
1处于Session 缓存中
2持久化对象数据库中设有对象记录
3Session 在特定时刻会保持二者同步
何时进入持久化状态?
1Session 的save()把临时->持久化状态
2Session 的load(),get()方法返回的对象
3Session 的find()返回的list集合中存放的对象
4Session 的update(),saveOrupdate()使游离->持久化
3.游离状态(detached)
1不再位于Session 缓存中
2游离对象由持久化状态转变而来,数据库中可能还有对应记录。
何时进入持久化状态?
1Session 的close()方法
2Session 的evict()方法,从缓存中删除一个对象。
原文:http://blog.csdn.net/hongchangfirst/article/details/8111824
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
一级缓存:
Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象。
每个Session 都有自己独立的缓存,且只能被当前工作单元访问。
二级缓存:
SessionFactory的外置的可插拔的缓存插件。其中的数据可被多个Session共享访问。
SessionFactory的内置缓存:存放了映射元数据,预定义的Sql语句。
Hibernate 中Java对象的状态
1.临时状态 (transient)
1不处于Session 缓存中
2数据库中没有对象记录
何时进入临时状态?
1通过new语句刚创建一个对象时
2当调用Session 的delete()方法,从Session 缓存中删除一个对象时。
2.持久化状态(persisted)
1处于Session 缓存中
2持久化对象数据库中设有对象记录
3Session 在特定时刻会保持二者同步
何时进入持久化状态?
1Session 的save()把临时->持久化状态
2Session 的load(),get()方法返回的对象
3Session 的find()返回的list集合中存放的对象
4Session 的update(),saveOrupdate()使游离->持久化
3.游离状态(detached)
1不再位于Session 缓存中
2游离对象由持久化状态转变而来,数据库中可能还有对应记录。
何时进入持久化状态?
1Session 的close()方法
2Session 的evict()方法,从缓存中删除一个对象。
原文:http://blog.csdn.net/hongchangfirst/article/details/8111824
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
相关文章推荐
- 【Hibernate运行机理】
- 【Hibernate运行机理】
- [置顶] Hibernate运行机理
- 解决问题:NODE_ENV不是内部或外部命令,也不是可运行的程序,或者批处理文件
- win7里边使用telnet命令为什么提示telnet不是内部或外部命令,也不是可运行的程序或批处理文件?
- iOS-浅谈runtime运行时机制01-类与对象的内部结构
- 图文详解win10/8.1/7系统cmd命令提示符出现“不是内部或外部命令,也不是可运行的程序或批处理文件”
- 'mysql' 不是内部或外部命令,也不是可运行的程序
- 关于Hibernate 在Junit测试中可以成功但是在Web下却无法运行的处理方法
- “adb不是内部或外部命令,也不是可运行的程序或批量文件。”
- windows程序内部运行原理
- java虚拟机的运行机理
- Android Studio Terminal 不是内部或外部命令,也不是可运行程序或批处理文件
- Hibernate运行错误:org.hibernate.MappingException: An association from the table Teacher_user
- cmd输入appium-doctor,运行时提示'node'不是内部或外部的命令
- 解密所有APP运行过程中的内部逻辑
- cmd窗口输入pip显示不是内部或外部命令,也不是可运行的程序或批处理文件的处理
- 令人蛋疼的express 的下载安装,解决express不是内部或外部命令,也不是可运行的程序或批处理文件
- 配置maven环境变量cmd控制台提示:mvn不是内部或外部命令,也不是可运行的程序或批处理文件