私のWebアプリケーションでは、新しいユーザー登録時に、彼のために新しいデータベースを作成する必要があります。例:root => db_root、admin => db_admin、user1 => db_user1など。ユーザーが私のアプリケーションにログインするとき、私は新しい作成されたデータベースに基づいて新しいentityManagerをインスタンス化し、そのdb上でのみデータを操作する必要があります。実行時のwebappの複数のentityManager
1つの問題は、それぞれのユーザー要求に対してどのentityManagerインスタンスを使用するかを知ることです。私は、ユーザーのセッションの属性entityManagerKeyを保存し、このキーで右のEntityManagerを取得
Hashmap<String, EntityManager>
の作成について考えました。このアプローチは、使用されていないentityManagerを破壊するための適切な時間など、いくつかの問題を引き起こします。さらに、私はそれが動作するためにすべてのサーバーのメモリを取ると思う。
素晴らしいアイデアではないようですが、別の解決策を実現しませんでした。私はJPA/HibernateとJerseyを使用しています。 1つのデータベースだけを作成することを除いて、すべてのアイデアが評価されます。
ありがとうございます!
は、あなたは、ユーザーごとに新しいデータベースを作成する必要が絶対によろしいですか?私はそれを必要とするユースケースを見たことがない。 – mszymborski
mszymborski、それは本当に奇妙です。それは必要ではありませんが、私のクライアントはそれを解体し、私は彼にそれをしないように説得しませんでした。 –