1.session在啥情况下清理缓存:
A。默认情况下,当应用程序提交事务,如,Transaction.commit;
B.显示调用flush的时候。
C.在执行某些查询的时候,如iterate.
2.session.flush()主要完成两件事情
*清理缓存
*执行sql
3.主键策略为uuid
调用session.save()后,只是将对象纳入session管理,不发insert语句,但主键已经生成,session中的existsInDatabase的状态为flase.
调用flush后,hibernate会清理缓存,执行sql,如果数据库的隔离级别为未提交读,那么flush后的数据就可以看到。session中的existsInDatabase的状态为true.
4.主键策略为native
调用session.save()后,执行insert语句,返回id,并纳入session管理,并且session中session中的existsInDatabase的状态为true.如果数据库的隔离级别为未提交读,则可以查询到数据。
5.主键策略为uuid,在session.save()后,session中的insertions和entityEntries各有一份save的对象,当flush后就把insertions中的这对象清除了。而entityEntries中还有,并把existsInDatabase这为true.
6.hibernate默认按save,update,delete顺序执行。
分享到:
相关推荐
对hibernate的flush机制有兴趣可以看看
NULL 博文链接:https://wuhaidong.iteye.com/blog/766562
主要讲解hibernate中flush()和evict()的用处
主要介绍了深入理解Hibernate中的flush机制,本文是对flush机制深入研究得出的一些结论总结,需要的朋友可以参考下
博文链接:https://llying.iteye.com/blog/221702
1 session.flush()的作用就是将session的缓存中的数据与数据库同步。 2 session.clear()的作用就是清除session中的缓存数据(不管缓存与数据库的同步)。 3.session.refresh():会强制发送select语句,以使session...
10.10. Session刷出(flush) 10.11. 传播性持久化(transitive persistence) 10.12. 使用元数据 11. 事务和并发 11.1. Session和事务范围(transaction scope) 11.1.1. 操作单元(Unit of work) 11.1.2. 长对话 ...
关于在使用 hibernate 在提交事务时常遇到的异常: ...其实这个异常一般都是和我们在操作session flush方法和提交事务过程中会抛出的,下面就具体结合session的事务和声明周期来具体分析下,为什么会有这样的异常;
10.10. Session刷出(flush) 10.11. 传播性持久化(transitive persistence) 10.12. 使用元数据 11. 事务和并发 11.1. Session和事务范围(transaction scope) 11.1.1. 操作单元(Unit of work) 11.1.2. 长对话 ...
10.10. Session刷出(flush) 10.11. 传播性持久化(transitive persistence) 10.12. 使用元数据 11. 事务和并发 11.1. Session和事务范围(transaction scope) 11.1.1. 操作单元(Unit of work) 11.1.2. 长对话 ...
主要介绍了Hibernate的Session_flush与隔离级别代码详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
10.10. Session刷出(flush) 10.11. 传播性持久化(transitive persistence) 10.12. 使用元数据 11. 事务和并发 11.1. Session和事务范围(transaction scope) 11.1.1. 操作单元(Unit of work) 11.1.2. 长对话 11.1.3. ...
Hibernate中的缓存 Hibernate中使用了一级缓存和二级缓存的机制来提高程序的性能. 一 为什么要使用缓存? 缓存是一块存储区域,可能是一块内存,也可能是一块硬盘.缓存...
//该方法将到classpath下解析hibernate.cfg.xml中的配置,如果不用Hibernate默认的配置文件名和路径,可在该方法中指定Hibernate配置文件的名称和路径 2.用Configuration对象获取SessionFactory和Session对象:...
10.10. Session刷出(flush) 10.11. 传播性持久化(transitive persistence) 10.12. 使用元数据 11. 事务和并发 11.1. Session和事务范围(transaction scope) 11.1.1. 操作单元(Unit of work) 11.1.2. 长对话 ...
013 session_flush 014 一对多关联映射 单向 015 一对多关联映射 双向 016 多对多关联映射 单向 017 多对多关联映射 双向 018 关联映射文件中标签中的 lazy(懒加载)属性 019 关联映射文件中集合标签中的 lazy(懒加载...
session flush测试(hibernate_session_flush) 12 hihernate一对多关联映射(单向Classes----->Student) 13 hihernate一对多关联映射(双向Classes<----->Student)(常用) 14 hibernate一对多双向自连接关联映射...
在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个可持久化类 1.3. 映射cat 1.4. 与猫同乐 1.5. 结语 2. 体系结构 2.1. 总览 2.2. JMX集成 2.3. JCA支持 3. SessionFactory...
两种配置文件: A.hibernate.cfg.xml 和 B.hibernate.properties A中可含映射文件的配置,而B中hard codes加映射文件。 A。Configuration config=new Configuration().config(); B. ...
10.10. Session刷出(flush) 10.11. 传播性持久化(transitive persistence) 10.12. 使用元数据 11. 事务和并发 11.1. Session和事务范围(transaction scopes) 11.1.1. 操作单元(Unit of work) 11.1.2. 应用程序事务...