您的位置:首页 > 其它

hibernate框架中session缓存的flush(),commit(),refresh(),clear()方法

2017-02-18 16:58 393 查看
session具有一个缓存,位于缓存中的对象成为持久化对象,他和数据库中的相关记录对应。session能有在某些时间点,按照缓存中对象的变化来执行相应的sql,来同步更新数据库,这一过程成为清理缓存(flush)。

默认情况session在以下时间点清理缓存:

1.当调用事务的commit()方法时,该方法先清理缓存(session.flush()),再提交事务(tx.commit())。

2.当应用程序执行一些查询操作,并且持久化对象中的数据已经发生了变化,会先清理缓存,以保证查询结果能够反映持久化对象的最新状态。

3.显式调用session的flush()方法。

下面总结一下session的flush(),commit(),refresh(),clear()方法

flush()

进行清理缓存(并未删除缓存的中的数据,缓存中的数据不丢失),执行一些sql语句将缓存中的数据保存到数据库,但是不提交事务。

commit()

先调用flush方法,然后提交事务,意味着永久保存到数据库。

refresh()

刷新缓存,执行查询操作,将数据库中的数据同步到本地session缓存。

clear()

清空缓存,相当于removeAll()操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: