Я использую Spring для создания SessionFactory:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
p:dataSource-ref="dataSource">
<property name="mappingResources">
<list>
<value>META-INF/mapping/domain-objects.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.show_sql=true
hibernate.format_sql=true
</value>
</property>
</bean>
Я бы хотел отобразить один из классов только для чтения.
<class name="MyDomainObject">
<!-- everything works without this line -->
<cache usage="read-only" />
<id name="id" />
<property name="name"
column="name" />
</class>
После того, как я добавил стратегию кэширования только для чтения в отображение MyDomainObject, тестовая программа начинает выдавать исключение:
Caused by: org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
Я попытался установить для hibernate.cache.use_second_level_cache и / или hibernate.cache.use_query_cache значение true.
<property name="hibernateProperties">
<value>
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=true
</value>
</property>
Ни один из вариантов не работал. Что еще мне нужно для использования стратегии кэширования только для чтения?