私はJPAモードでHibernateを使って純粋なJavaアプリケーションを開発しています。persistence.xmlで複数の設定をサポートする方法は?
- がクラスタグを使用して
- リストのすべての使用entites
- は、すべての上のスキーマの自動作成などの他のオプションを定義するデータベースへのアクセスの資格情報が含まれています。ファイルのpersistence.xmlは、単一の永続性ユニットが含まれていますアプリケーションの開始
私たちはアプリケーションをリリースしました。テストモード、開発モード、本番モードの設定が必要です。彼らは明らかに異なるデータベースアクセスの資格情報と自動更新オプションを持っています。
私は考えることができる唯一の可能性が私の唯一の欠点を持っている:
- は、複数のpersistence.xmlをお持ちですか?エンティティクラスがパーシスタンスユニットの中で宣言されているので、悪い考えです。私は3つのpersistence.xmlファイルでそれらを維持する必要があります
- 1つのpersistence.xmlに複数の永続ユニットがありますか?私はすべてのエンティティクラスタグをそれぞれにコピーしなければならないので、また悪い考えです。
どうすればいいですか?
素晴らしいです。私はあなたが2番目のパラメータを渡すことができないことを知りませんでした。試してみます。ありがとう! – Wombat
@Wombat運がいいですか? – coladict
あなたのソリューションは機能しており、現在のソリューションとして使用しています。しかし、弱点があります: "hibernate.hbm2ddl.auto"を渡すことは機能しません(JPAの標準パラメータではないためです)。このパラメータを "単一の" persistence.xmlに保存すると、そのパラメータを無効にするのを忘れる恐れがあり、本番データベースが消去されます。したがって、私は複数の永続性を持つことをお勧めします。xmlは、そこにすべてのentitesをリストアップしなければならないので、それは動作しません。そうでなければ、EntityManagerFactoryによって見つけられません。 – Wombat