hibernate的session緩存和二級緩存和查詢緩存
1、session有緩存功能,但是當session關(guān)閉后,緩存消失。2.二級緩存是sessionfactory級別的,當hibernate容器啟動后,
二級緩存就存在了,當hibernate關(guān)閉后,二級緩存消失。
hibernate本身對于二級緩存是關(guān)閉的,而且沒有實現(xiàn)二級緩存的機制。
在hibernate.cfg.xml文件中配置:
<!-- 啟用二級緩存 -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.use_query_cache">true</property>
<!-- 配置緩存提供商 -->
<property name="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</property>
在實體類中配置
<class-cache class="com.nacosoft.pda.user.PdaUser" usage="read-write" />
如果想開啟集合的二級緩存,需要開啟針對集合類的二級緩存。
如果二級緩存的數(shù)據(jù)量大,可以在src目錄下新建ehcache.xml文件,把數(shù)據(jù)緩存在磁盤上。
3.查詢緩存:在二級緩存的基礎(chǔ)上,在代碼里寫:
Query query = session.createQuery("from Person");
query.setCacheable(true);
List list = query.list();
就可以使用查詢緩存了
就可以使用查詢緩存了