Session缓存:
session缓存是由一系列的Java集合构成的。当一个对象被加入到Session缓存中,这个对象的引用就加入到了java的集合中,以后即使应用程序中的引用变量不再引用该对象,只要Session缓存不被清空,这个对象一直处于生命周期中。
Session缓存的作用:
1)减少访问数据库的频率。
2)保证缓存中的对象与数据库中的相关记录保持同步。
Session清理缓存的时机:
1)当调用Transaction的commit()方法时,commit()方法先清理缓存(前提是FlushMode.COMMIT/AUTO),然后再向数据库提交事务。
2)当应用程序调用Session的find()或者iterate()时,如果缓存中的持久化对象的属性发生了变化,就会先清理缓存,以保证查询结果能反映持久化对象的最新状态。
3)当应用程序显示调用Session的flush()方法的时候。
Session清理模式执行清理缓存操作的时间点: