flush.docVIP

  • 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)

1亿VIP精品文档

相关文档