1

假设我有一个带有 persistence.xml 配置和 jpa 实体的 jar。我希望在不同的应用程序之间共享相同的持久性单元。

例如部署一个战争应用程序并注入相同的持久性单元(其他应用程序使用)。

@PersistenceContext(unitName="MySharedPersistence")
private EntityManager entityManager;    

我不能考虑将所有应用程序打包在一个 ear 文件中,因为我希望在重新上传应用程序时启动并运行其他应用程序(重新上传的应用程序使用来自已部署应用程序的一些远程 ejb,并使用与上述相同的持久性 unti )。

这个问题有什么解决办法吗?

先感谢您。

编辑:可能不推荐是否有任何适当的试验具有相同的结果?

4

1 回答 1

0

您可以将您的实体类和您的persistence.xml放在一个 jar 中,并在所有项目中重用这个 jar。只要您还包含一个beans.xml文件persistence.xml,它就可以正常工作。然后,您应该能够在使用此 jar 文件的任何项目中注入持久性上下文。

您需要 beans.xml 文件以供容器自动发现。作为参考,以下是beans.xml文件的外观:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
      http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>
于 2013-11-17T11:05:39.787 回答