我在谷歌和各種論壇上搜索了我的問題的答案,但找不到解決方案。我目前正試圖通過在文件中添加一個持久性單元來修改persistence.xml。
此問題的解決方案始終「在創建EntityManagerFactory(或EntityManager)時傳遞屬性的Map」,但我需要將新的持久單元保存在persistence.xml中,因爲應用程序將具有100個或更多持久性單元,每個租戶將註冊一個服務,每個租戶都有自己的數據庫。我目前使用EclipseLink 2.3.3作爲我的JPA實現,EJB 3.1和jboss 7.1.1.Final作爲我的應用程序服務器。
是否有可能在運行時(即時)修改persistence.xml?在運行時修改persistence.xml
0
A
回答
2
persistence.xml是一個已部署的工件,所以在運行時很難修改。我認爲傳遞一個屬性映射到createEntityManagerFactory是你最好的解決方案,你有什麼問題呢?
您可能還想嘗試使用持久性提供程序API,使用PersistenceUnitInfo的createContainerEntityManagerFactory()。
而且,考慮使用的EclipseLink的多租戶支持,
http://www.eclipse.org/eclipselink/documentation/2.5/solutions/multitenancy.htm
相關問題
- 1. 在運行時修改persistence.xml
- 2. 如何在運行時更改persistence.xml
- 3. 在運行時修改Vtable
- 4. 在運行時修改
- 5. 在運行時修改propertyGrid
- 6. 運行時修改strings.xml
- 7. PHP運行時類修改
- 8. 在運行時創建jrxml文件並在運行時修改
- 9. 在運行時創建/修改枚舉
- 10. 在運行時修改innerhtml屬性
- 11. 在運行時修改simulink模型
- 12. 在運行時修改actionBar的外觀
- 13. 在運行時動態修改塊
- 14. 在運行時擴展/修改NHibernate類
- 15. ItemsControl的在運行時修改
- 16. PHP在運行時修改suhosin設置
- 17. 在運行時修改導軌模型
- 18. 在運行時修改字體
- 19. 在運行時修改程序集?
- 20. 在運行時修改向量
- 21. 修改的ListView的ItemTemplate在運行時
- 22. 在運行時修改JVM標誌
- 23. 在運行時修改JVM參數
- 24. 在運行時修改.resx文件
- 25. C++在運行時修改資源
- 26. 重寫或修改在運行時
- 27. 在Django運行時修改urlpatterns
- 28. 如何在運行時修改.code段?
- 29. 在運行時修改視圖
- 30. 在運行時修改材質
感謝您的回答,我使用的createContainerEntityManagerFactory()創建託管的EntityManager的容器,我的問題是,我不t在部署時有租戶或爲租戶創建的數據庫的數量(我正在實施數據庫策略),因此我需要在運行時創建持久性單元,並將其保存以防萬一發生在服務器上並需要重新啓動。 – Giuliano