簡體   English   中英

休眠二級緩存

[英]Hibernate second level caching

我可以在Hibernate中使用二級緩存來緩存查詢( createSQLQuery ),例如:

List<Student> books = (List<Student>)session.createSQLQuery("select * from Student ");

我可以在Hibernate中使用二級緩存來緩存查詢( createQuery ),例如:

Query query = session.createQuery("from Student where studentId = :id ");
query.setParameter("id", 5);
List<Student> list = query.list();

如果為“是”,我可以使用什么cache.provider_class (在Hibernate 4.3.8中不建議使用SingletonEhCacheProvider )。

如果要在應用程序中使用Hibernate二級緩存,則需要在hibernat.cfg.xml文件中進行一些更改。 <session-factory>標簽中

<property name="hibernate.cache.use_second_level_cache">true</property>

<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>最重要的是,將<cache usage=”read-write” />放在<id>之后的每個實體的hbm.xml文件中標簽 。 而已。

您可以在createQuery中使用“查詢緩存”! 您必須將setCacheable(true)添加到您的HQL查詢中

Query query = session.createQuery("from Student where studentId = :id ");
query.setParameter("id", 5).setCacheable(true);

您可以使用此配置 (休眠4.3.8)

<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.use_query_cache">true</property>
<property name="hibernate.cache.region.factory_class">
net.sf.ehcache.hibernate.EhCacheRegionFactory</property>

這對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM