Play 2.1.1 とその組み込みの JPA 統合 (JPA.em() など) を使用しています。
- db.pass プロパティを動的に変更するにはどうすればよいですか? Play.application().configuration() は Play 2.1 の時点で不変のようです。(または、少なくともミューテーターを認識していません)
- db.pass を変更できる場合、JPA.em() が新しいパスワードを使用して EntityManager を返すように、DB 構成を再ロードするにはどうすればよいでしょうか?
回避しようとしているのは、EntityManagerFactory を使用して EntityManager を再作成する必要があることです。JPA ヘルパー クラスで、引き続き Play に管理させたいと考えています。
バックグラウンド
システムには、ローカルで実行するためのデフォルトの DB 構成があります。サーバーにデプロイされると、次のスクリプトを使用して実行中のアプリケーションに DB パスワードが動的に設定されます。
#!/bin/bash
stty -echo
read -p "Password: " PASS
stty echo
curl -k https://127.0.0.1:8443/someUrl/pwd --data "password=$PASS"
アプリケーションはこのデータを受け取り、Hibernate SessionFactory を再作成します。私たちの新しい Play アプリは、同様のことを行う必要があります。