Кэш первого уровня Hibernate не работает для логического типа? - PullRequest
0 голосов
/ 14 октября 2018

У меня есть пружинная @Transactional служба только для чтения, которая охватывает несколько вызовов к JpaRepository с помощью метода, использующего собственный запрос, который возвращает boolean.Запрос тяжелый и при проверке выглядит логи, которые выполняются несколько раз с одинаковыми параметрами.Не должен быть вызван только один раз?Не работает ли кеш первого уровня при использовании Spring Transactions?потому что он возвращает boolean вместо @Entity?

1 Ответ

0 голосов
/ 14 октября 2018

Кэш первого уровня работает только для результатов, которыми могут управлять EntityManager, которые являются сущностями. (или Сеанс в Hibernate)

Если вы хотите кэшировать другие объекты или простые типы I 'Я предлагаю использовать аннотацию @Cacheable с некоторыми поставщиками кэша, например EhCache LINK

РЕДАКТИРОВАТЬ:

Ваш собственныйзапросы не являются частью механизма кэширования первого уровня.Только простая операция, такая как, сохранить, объединить, обновить и т. Д. Может использовать его.Для получения дополнительной информации проверьте эту статью LINK

...