嗨,我正在尝试使用EclipseLink开发一个JPA应用程序。我尝试在没有persistence.xml的情况下创建它,或者至少在运行时创建持久化单元。所以一开始我有一个空的(或者更确切地说是虚拟的) persistence.xml。我查看了这篇文章的eclipselink without persistence.xml,但在调试后我注意到,EL强制声明至少PU名称,并且所有其他参数都可以在运行时设置(包括提供程序)。有没有办法,PU只能在运行时创建?我正在尝试基于应用程序中的类别数量创建多个PU,这只在运行时才知道。
目前,我正在覆盖除name (不能覆盖)之外的所有其他参数,并为每个类别创建一个EM工厂。
提前谢谢你,
戈壁
发布于 2013-05-30 21:47:51
JPA在不需要persistence.xml的PersistenceProvider中定义了一个createContainerEntityManagerFactory(PersistenceUnitInfo信息,映射属性)(容器负责处理它)。您可以直接在EclipseLink PersistenceProvider上调用它,并传递您自己的PersistenceUnitInfo。
您可能希望研究一下EclipseLink多租户支持,
http://www.eclipse.org/eclipselink/documentation/2.4/solutions/multitenancy.htm#CHDBJCJA
https://stackoverflow.com/questions/16817039
复制相似问题