hibernate flush 缓存

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

你可能感兴趣的:(hibernate flush 缓存)