这是事实:
我的Web应用程序中有2个包含JPA实体的jar,
并且一个jar(jar A)中的实体引用了另一个jar(jarB)中的实体
我将<jar-file>/WEB-INF/lib/MyJarB.jar</jar-file>
放在jar A的persistence.xml中
但是我不想对/WEB-INF/lib/MyJarB.jar进行硬编码,因为我可以在测试环境中测试实体,并且希望有另一种方法来指定实体jar依赖关系,而不是对路径进行硬编码。
我尝试了<jar-file>MyJarB.jar</jar-file>
和<jar-file>./MyJarB.jar</jar-file>
,但是都失败了。
请分享您的想法。
最佳答案
我建议不要将persistence.xml
与JAR放在一起,因为持久性定义是应用程序所关心的。因此,最好在Web模块中使用persistence.xml
声明两个JAR:
<jar-file>/WEB-INF/lib/MyJarA.jar</jar-file>
<jar-file>/WEB-INF/lib/MyJarB.jar</jar-file>
如果您在Web模块中进行了测试,并且想要使用另一个持久化定义,只需创建一个替代的persistence.xml(在
src/test/resources
中说),然后使用该实例化EntityManagerFactory即可。