hiberanate学习笔记(四)flush缓存和hibernate的主键生成策略

来源:互联网 发布:windows 10 修复bcd 编辑:程序博客网 时间:2024/05/21 07:49

•flush:Session 按照缓存中对象的属性变化来同步更新数据库
•默认情况下 Session 在以下时间点刷新缓存:
–显式调用 Session 的 flush()方法
–当应用程序调用 Transaction 的 commit()方法的时, 该方法先 flush ,然后在向数据库提交事务
–当应用程序执行一些查询(HQL, Criteria)操作时,如果缓存中持久化对象的属性已经发生了变化,会先 flush 缓存,以保证查询结果能够反映持久化对象的最新状态
•flush 缓存的例外情况: 如果对象使用 native 生成器生成 OID, 那么当调用 Session 的 save() 方法保存对象时, 会立即执行向数据库插入该实体的 insert 语句.
•commit() 和 flush() 方法的区别:flush 执行一系列 sql 语句,但不提交事务;commit 方法先调用flush() 方法,然后提交事务. 意味着提交事务意味着对数据库操作永久保存下来。


0 0
原创粉丝点击