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()操作。
默认情况session在以下时间点清理缓存:
1.当调用事务的commit()方法时,该方法先清理缓存(session.flush()),再提交事务(tx.commit())。
2.当应用程序执行一些查询操作,并且持久化对象中的数据已经发生了变化,会先清理缓存,以保证查询结果能够反映持久化对象的最新状态。
3.显式调用session的flush()方法。
下面总结一下session的flush(),commit(),refresh(),clear()方法
flush()
进行清理缓存(并未删除缓存的中的数据,缓存中的数据不丢失),执行一些sql语句将缓存中的数据保存到数据库,但是不提交事务。
commit()
先调用flush方法,然后提交事务,意味着永久保存到数据库。
refresh()
刷新缓存,执行查询操作,将数据库中的数据同步到本地session缓存。
clear()
清空缓存,相当于removeAll()操作。
相关文章推荐
- Hibernate深入理解----03操作Session缓存方法(flush、refresh、clear,事务隔离级别)
- Hibernate Session中flush、clear、evict方法的区别
- Hibernate 中的session 的flush、reflush 和clear 方法 ,及数据库的隔离级别
- hibernate的缓存机制与生命周期——flush和commit方法
- Hibernate中session的clear(),flush(),evict()方法详解
- Hibernate中session的clear(),flush(),evict()方法详解
- Hibernate缓存的evict、clear和flush方法
- 【hibernate框架】核心开发接口-Clear方法与flush方法
- hibernate--session的CRUD方法, delete, load,get,update,saveorupdate, clear, flush
- hibernate先删除数据,紧接着执行插入时的异常解决之道——中间不能调用flush()、clear()等方法
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate中Session的flush方法介绍
- 论hibernate中的session.flush()和transaction.commit()的差异
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate持久化对象状态 Session缓存(一级缓存),快照 操纵持久化对象的方法
- Hibernate几个常用方法官网释义 save、update、flush、load、merge、persist、delete、commit
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate的clear(),flush(),evict()方法详解
- 【Hibernate框架开发之五】Hibernate对象的三种状态&Session常用方法