JPA(EclipseLink実装)とPostgreSQLをデータベースとして使用したJavaEEアプリケーションを開発したいと思います。
複数のデータベースとデータベースごとに1つのスキーマを使用するのではなく、1つのデータベースと複数のスキーマを使用することを選択しました。
だから、私のpersistence.xmlにはそのようなものがあります:
<persistence-unit name="00" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>todo</jta-data-source>
<class>...</class>
<class>...</class>
<properties>
<property name="javax.persistence.target-database" value="PostgreSQL" />
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/testdb;create=true" />
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="userpwd" />
</properties>
</persistence-unit>
<persistence-unit name="01" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>todo</jta-data-source>
<class>...</class>
<class>...</class>
<properties>
<property name="javax.persistence.target-database" value="PostgreSQL" />
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/testdb;create=true" />
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="userpwd" />
</properties>
</persistence-unit>
永続性ユニットを簡単に参照できます:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("01");
EntityManager em = emf.createEntityManager();
しかし、スキーマに関する情報をpersistence.xmlに保存するにはどうすればよいですか?00
スキーマまたはデータベース01
にアクセスしたい。testdb
おそらくネイティブSQLを介してスキーマを直接変更できますが、スキーマを永続性ユニットにバインドする方法はありますか?
ありがとうございました