2 つの異なる永続化 API を使用できる Spring アプリケーションがあります。
- 春のデータ JPA
- 春のデータNeo4j
Spring Data JPA を使用する場合、「web.xml」で「OpenEntityManagerInViewFilter」を宣言して遅延読み込みを行う必要があります。
<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
)。
質問: プロファイルが "relational-database" の場合に "OpenEntityManagerInViewFilter" を有効にし、プロファイルが "graph-database" の場合に無効にするにはどうすればよいですか?
ありがとう!
関連する質問:
- web.xml でフィルターを条件付きで有効/無効にする方法ですが、使用していません
DelegatingFilterProxy
。