Спящий кэш второго уровня в orm.xml?

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

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

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

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

Kewei

3 ответа

Решение

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

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

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

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

Другие вопросы по тегам