在我的web應用程序中,當新用戶註冊時,我需要在他的mysql中創建一個新的數據庫。例如:root => db_root,admin => db_admin,user1 => db_user1等。當用戶登錄到我的應用程序中時,我需要基於他創建的新數據庫實例化一個新的entityManager,並僅在該數據庫上操作數據。在webapp運行時的幾個entityManager
一個問題是:我應該怎麼知道我應該爲每個用戶請求使用哪個entityManager實例。我認爲有關創建
Hashmap<String, EntityManager>
節省用戶的會話屬性entityManagerKey,並通過該鍵取回權的EntityManager。這種方法帶來了一些麻煩,比如正確的時間銷燬一個未使用的entityManager。此外,我認爲這將需要所有的服務器內存工作。
雖然這似乎不是一個好主意,但我沒有意識到另一個解決方案。我正在使用JPA/Hibernate和Jersey。除了只創建一個數據庫之外,任何想法都將被讚賞。
謝謝!
你真的確認你要爲每個用戶創建一個新的數據庫?我從來沒有見過需要它的用例。 – mszymborski
mszymborski,這真的很奇怪。雖然沒有必要,但我的客戶端將它解決了,但我沒有說服他不這麼做。 –