您好我正在尝试使用EclipseLink开发JPA应用程序。 我试图在没有persistence.xml的情况下创建它,或者至少在运行时创建持久性单元。所以我有一个空的(或者说是虚拟的)persistence.xml。 我查看了这篇文章eclipselink without persistence.xml,但经过调试后我注意到,EL强制声明至少PU名称,所有其他参数都可以在运行时设置(包括提供者)。 有没有办法,PU只能在运行时创建?我正在尝试根据应用程序中的类别数创建多个PU,这仅在运行时才知道。
目前我正在覆盖除名称(我无法覆盖)之外的所有其他参数,并为每个类别创建一个EM工厂。
提前致谢,
Gopi
答案 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