Спящий кэш второго уровня в 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 позволяет использовать различные поставщики кэша, поэтому нет общего ответа на ваш вопрос.