2015-03-12 4 views
0

Могу ли я использовать кэш-память второго уровня в спящий режим для запроса кэширования (createSQLQuery), как:
Hibernate кэширование второго уровня

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

Могу ли я использовать кэш-память второго уровня в спящий режим для запроса кэширования (CreateQuery), как :

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

Если "ДА", то, что cache.provider_class Могу я использовать? (SingletonEhCacheProvider устарел в спящем режиме 4.3.8).

ответ

0

Если вы хотите использовать кеш второго уровня 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” /> в hbm.xml файл каждого вашего предприятия после <id> тега. вот и все.

0

вы можете использовать «кеш запросов» с помощью createQuery! Вы должны добавить setCacheable (истинный) к вашему HQL запрос

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

вы можете использовать this configuraion (спящий режим 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> 

Это работало для меня

Смежные вопросы