Отключить кеш с зимней спячкой для конкретного запросаJAVA

Программисты JAVA общаются здесь
Anonymous
Отключить кеш с зимней спячкой для конкретного запроса

Сообщение Anonymous »

Я использую Hibernate (3.6.0) для стандартного картирования объектов, а также несколько прямых статистических запросов SQL. < /p>

Некоторые из этих прямых запросов случаются Иметь одинаковые данные «форма», то есть те же поля, однако, однако представляют собой очень разные части информации, основанные на их исходной таблице и параметрах. > Использование того же боба. p>

Теперь, поскольку два разных запроса карты на одном и том же бобе, Hibernate считает, что это умно кэшировать результаты первого запроса и вернуть эти результаты для второго совершенно другого запроса. /p>

Я попытался сделать следующее: < /p>


[*]

Код: Выделить всё

session.setCacheMode(CacheMode.IGNORE);
в самой ранней точке сеанса
[*]

Код: Выделить всё

qry.setCacheable(false);
при построении запроса
[*]

Код: Выделить всё

qry.setCacheMode(CacheMode.IGNORE);
при построении запроса
@Cacheable(value = false)< /code> в качестве аннотации на объекте объекта < /li>
< /ol>

Единственное, что я нашел, это работает, - это сделать объект @id < /code> Строка объединения как определяющей таблицы источника запросов, так и параметров. Это, очевидно, не идеально. < /p>

И есть ли лучший способ сказать Hibernate отключить кэш для выбранных запросов, оставляя его, как обычно, для всего остального? < /p>

Подробнее здесь: https://stackoverflow.com/questions/217 ... ific-query

Вернуться в «JAVA»