Будет ли кэш hibernate (например, EHCache) работать с кодом, специфичным для jpa (если я использую EntityManager / EM Factory вместо Session / SessionFactory)? - PullRequest
2 голосов
/ 27 февраля 2011

У меня очень простой запрос. Я хочу убедиться, что у меня нет путаницы. В спецификации я видел, что кэширование не является частью спецификации и предоставляется в соответствии с конкретными поставщиками инструментов orm. Я использую Hibernate в качестве инструмента ORM в своем приложении. Но чтобы быть независимым от производителя, я использую все (аннотации, классы и т. Д.) Из JPA (javax.persistence), а не что-либо специально предоставленное Hibernate. Я использую EntityManager и EntityManagerFactory вместо SessionFactory и Session. Мой запрос заключается в том, что в блогах я видел, что Session (косвенно) заботится о поставщиках и механизме кэширования, предоставляемых Hibernate. Так возможно ли, что EntityManager также сможет использовать для кэширования провайдеров и конфигурацию кэша, и, следовательно, объекты и запросы, указанные как кешируемые, смогут использовать функции кэширования? (Я думаю, что они должны быть). Также есть ли какие-либо API, предоставляемые JPA (например, API API от Hibernate) для измерения и просмотра статистики кэширования? Пожалуйста, помогите мне в этом отношении.

1 Ответ

3 голосов
/ 27 февраля 2011

Да, все будет работать нормально. Если вы посмотрите на код, EntityManagerImpl делегирует SessionImpl, так что все будет работать так же, как и в спящем режиме. Также проверьте эту статью о кэшировании в JPA 2.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...