私はこれに対する答えを探しましたが、見つけることができなかったので、この非常に適切なコミュニティにこれらの質問をします!
- dev、qa、stage、productionなどの多くの環境にデプロイされるスタンドアロンのJavaアプリケーションがあります。そのため、各環境には独自のdatasource / dbがあり、アプリケーションの実行元の環境に応じてさまざまなプロパティを管理するプロパティファイルがあります。そのため、persistence.xmlで、devの永続性ユニットを定義しました。同じファイルで、他の環境の永続性ユニットも定義したいと思います。そうすると、Eclipse(Indigo-最新)は次のように文句を言います:「複数の永続性ユニットが定義されています-最初の永続性ユニットのみが認識されます」。 私がやったことは合法であり、これはEclipseの問題だと思います。誰でも確認できますか?また、
- @Entityアノテーションが付けられたエンティティBeanは、persistence.xmlファイルで次のように明示的に定義しなくても自動的に取得されると想定していました
<class>com.mycompany.model.MyEntityBean</class>
。ファイルにエンティティクラスを明示的に含めることを省略すると、エンティティBeanは、注釈が付けられてい ても、「クラス「com.mycompany.model.MyEntityBean」はマップされていますが、永続性ユニットには含まれていません」 というエラーがスローされます。私は間違っていると思いましたか? - 私の最後の質問はdbクレデンシャルに関するものです:私のdbクレデンシャルをプレーンテキストのpersistence.xmlファイルに入れるのがベストプラクティスですか?これに代わるより安全な方法はありますか?
コミュニティありがとう!
ps-私はEclipseLinkをJPAベンダーとして使用していますが、それは重要ではありませんか?
これが私のpersistence.xmlの例です
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="Development">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.mycompany.model.MyEntityBean</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:db2://xxxxxxx" />
<property name="javax.persistence.jdbc.password" value="xxxxxx" />
<property name="javax.persistence.jdbc.user" value="xxxxxxxx" />
</properties>
</persistence-unit>
<persistence-unit name="QA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.mycompany.model.MyEntityBean</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:db2://xxxxxxx" />
<property name="javax.persistence.jdbc.password" value="xxxxxx" />
<property name="javax.persistence.jdbc.user" value="xxxxxxxx" />
</properties>
</persistence-unit>
</persistence>