Здраствуйте!
пишу сайт на java/jsf , подскажите как из кеша хибернейта удалить измененный объект,
в базу сохраняется нормально, а последующие выборки возвращают старое значение.
различные манипуляции evict — evict(News.class , new Integer(news.getId())), evictQueries, evictCollection и тп — не помогли,
hibernate.cfg :
...
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<property name="hibernate.сache.use_second_level_cache">true</property>
<property name="hibernate.cache.use_query_cache">true</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="hibernate.current_session_context_class">thread</property>
...
Здравствуйте, Strannica, Вы писали:
S>различные манипуляции evict — evict(News.class , new Integer(news.getId())), evictQueries, evictCollection и тп — не помогли,
А попробуй для начала сделать так
S>hibernate.cfg :
S> <property name="hibernate.сache.use_second_level_cache">false</property>
S> <property name="hibernate.cache.use_query_cache">false</property>
и если поможет почитай про second level cache. Evict-ы удаляют объект из кэша первого уровня, а чтобы убрать объект из кэша второго уровня нужно нужно работать с SessionFactory.
Погляди сюда:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html#performance-sessioncache