- 2
- 0
- 约7.92千字
- 约 8页
- 2016-12-03 发布于河南
- 举报
flush
session flush在commit之前默认都会执行他。也可以手动执行它,他主要做了两件事:
1) 清理缓存。
2) 执行SQL。
session在什么情况下执行flush
* 默认在事务提交时
* 显示的调用flush
* 在执行查询前,如:iterate
hibernate按照save(insert),update、delete顺序提交相关操作
**********************************************************************
在下面的情况下,Hibernate会调用Session.flush()以清理缓存: 1)事务提交时,如果flush模式不为FlushMode.NEVER,commit()将调用flush(). 2)在某些查询语句之前(此查询语句之前的语句已经改变了数据库状态,所以需要调用flush()以同步数据库是查出来的数据是经过更改的)。在调用Session.flush()时,涉及的SQL语句会按照下面的顺序执行。(1) 所有的实体进行插入的语句,其顺序按照对象执行Session.save()的时间顺序。(2) 所有对实体进行更新的语句(3) 所有进行集合的删除语句(4) 所有对集合元素进行删除,更新或者插
原创力文档

文档评论(0)