У меня есть приложение Spring, которое может использовать два разных API сохранения:
- Спринг-данные JPA
- Весенние данные Neo4j
При использовании Spring Data JPA мне нужно объявить «OpenEntityManagerInViewFilter» в «web.xml» для ленивой загрузки:
<filter>
<filter-name>OpenEntityManagerInViewFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Проблема в том, что я не могу включить этот фильтр при использовании Spring Data Neo4j. Оставив его включенным, вы получите следующую ошибку времени выполнения:
No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
Я хочу выбрать, какую базу данных использовать с профилем Spring (например, spring.profiles.active=relational-database
или spring.profiles.active=graph-database
).
Вопрос: как я могу включить "OpenEntityManagerInViewFilter", когда профиль является "реляционной базой данных", и отключить его, когда профиль является "графовой базой данных"?
Спасибо!
Связанные вопросы:
- Как условно включить/отключить фильтр в web.xml но я не использую
DelegatingFilterProxy
.
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
и загружать ее только тогда, когда профиль является графовой базой данных? - person Grégoire C   schedule 12.06.2015