私のpersistence.xmlには、postgreSQLスキーマによる永続ユニットが多数あります。
EntityManagerFactory を動的に作成することで、必要なときにいつでも EntityManager をインスタンス化します。
EntityManagerFactory emf = Persistence.createEntityManagerFactory(schemaToChoose);
EntityManager em = emf.createEntityManager();
そしてそれはうまくいきます。ただし、コンテナ インジェクションは使用しません。
さて、この方法でリソースをあまり消費しないのだろうか?
私はおそらく JPA キャッシュをよく理解していませんが、エンティティは em キャッシュ内と emf キャッシュ内に格納されていると思います。2 つのレベルがあります。したがって、em と emf をインスタンス化するたびに JPA キャッシュが失われる可能性があるため、毎回再作成します。
2 つの質問があります: emf と em がパフォーマンスに影響を与えるたびにインスタンス化できますか? キャッシュを保持する代わりに、スキーマを持っているのと同じ数の em を注入する必要がありますか?
ありがとうございました