[英]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.