Спящий кэш второго уровня в orm.xml? - PullRequest
4 голосов
/ 28 мая 2009

Я часами гуглял и понял, что пользователи могут использовать либо xml-файл (orm.xml, я полагаю?), Либо аннотации в JPA, либо и то и другое одновременно. Я прав? Итак, Мой проект использует кэш второго уровня, которого нет в спецификации JPA. И я использую аннотации, такие как: @org.hibernate.annotations.Cache (использование = org.hibernate.annotations.CacheConcurrencyStrategy.READ_WRITE )

для каждой сущности. Тем не менее, я предполагаю, что приведенная выше аннотация не относится к аннотации JPA, поэтому я не знаю, есть ли что-нибудь эквивалентное в orm.xml? Я посмотрел на XML-схему orm.xml, и такой элемент гибернации не разрешен в схеме.

Если я не могу выполнить настройку кэша второго уровня в файле orm.xml, есть ли другой способ, кроме как в аннотации? Причина, по которой я не хочу делать это аннотацией, заключается в том, что у меня есть два приложения, одно из которых использует стратегию параллелизма READ_WRITE, а другое - стратегию параллелизма READ_ONLY.

Заранее спасибо !!!

Kewei

Ответы [ 3 ]

2 голосов
/ 28 мая 2009

вы можете использовать файлы hibernate.cfg.xml, hibernate.properties или * .hbm.xml, чтобы включить кэширование для определенных объектов с различными стратегиями кэширования

1 голос
/ 28 мая 2009

Если вы не хотите использовать аннотации, обратитесь к документации по реализации кэша второго уровня hibernate (a.k.a «поставщик кэша», например, ehcache ), как его настроить.

Обратите внимание, что Hibernate позволяет использовать разные поставщики кэша, поэтому нет общего ответа на ваш вопрос.

0 голосов
/ 29 мая 2009

Итак, поэтому я думаю, что текущее решение для моей проблемы состоит в том, чтобы заменить все аннотации каждой сущности на файлы отображения Hibernate, чтобы при различном развертывании (в том числе и в приложении) мы могли использовать разные файлы отображения Hibernate.

...