0


我在谷歌和各种论坛上搜索了我的问题的答案,但找不到解决方案。我目前正在尝试通过向文件添加持久性单元来在运行时修改 persistence.xml。
这个问题的解决方案总是“在创建 EntityManagerFactory(或 EntityManager)时传递属性映射”,但我需要将新的持久性单元保存在 persistence.xml 中,因为应用程序将有 100 个甚至更多的持久性单元,每个租户将注册到该服务,每个租户将拥有自己的数据库。我目前使用 EclipseLink 2.3.3 作为我的 JPA 实现,EJB 3.1 和 jboss 7.1.1.Final 作为我的应用程序服务器。
是否可以在运行时(即时)修改persistence.xml?

4

1 回答 1

2

persistence.xml 是已部署的工件,因此在运行时很难修改。我认为将属性映射传递给 createEntityManagerFactory 是您最好的解决方案,您对此有什么问题?

您可能还想尝试使用 PersistenceProvider API,即采用 PersistenceUnitInfo 的 createContainerEntityManagerFactory()。

另外,考虑使用 EclipseLink 的多租户支持,

http://www.eclipse.org/eclipselink/documentation/2.5/solutions/multitenancy.htm

于 2013-07-03T12:44:29.180 回答