没有persistence.xml和多个persistence.xml的eclipselink

时间:2013-05-29 14:46:26

标签: eclipselink entitymanager persistence.xml

您好我正在尝试使用EclipseLink开发JPA应用程序。 我试图在没有persistence.xml的情况下创建它,或者至少在运行时创建持久性单元。所以我有一个空的(或者说是虚拟的)persistence.xml。 我查看了这篇文章eclipselink without persistence.xml,但经过调试后我注意到,EL强制声明至少PU名称,所有其他参数都可以在运行时设置(包括提供者)。 有没有办法,PU只能在运行时创建?我正在尝试根据应用程序中的类别数创建多个PU,这仅在运行时才知道。

目前我正在覆盖除名称(我无法覆盖)之外的所有其他参数,并为每个类别创建一个EM工厂。

提前致谢,

Gopi

1 个答案:

答案 0 :(得分:2)

JPA在PersistenceProvider中定义了一个createContainerEntityManagerFactory(PersistenceUnitInfo信息,Map属性),它不需要persistence.xml(容器负责处理它)。你可以直接在EclipseLink PersistenceProvider上调用它,并传递你自己的PersistenceUnitInfo。

您可能希望了解EclipseLink多租户支持,

http://www.eclipse.org/eclipselink/documentation/2.4/solutions/multitenancy.htm#CHDBJCJA