是否可以为EJB jar定义默认的persistence-context-ref ?



我有一个EAR项目,我在其中定义了

  • 一个只包含我想要持久化的实体的"持久化"JAR(和一个persistence.xml)
  • 包含活动组件的EJB Jar

在EAR(使用maven插件构建)中部署这些组件时,我总是得到

org.glassfish.deployment.common.DeploymentException: Could not resolve a persistence unit corresponding to the persistence-context-ref-name [base-entities] in the scope of the module called [ear-0.0.1-SNAPSHOT#ejbs-0.0.1-SNAPSHOT.jar]. Please verify your application.

我怎样才能解决这个问题?我首先考虑为整个EJB jar(在EJB -jar.xml中)定义一个persistence-context-ref,但这似乎不可能。那么,我应该写第二个persistence.xml链接到第一个吗?

这个问题的最简单解决方案(事后看来)是在EJB jar中放入一个persistence.xml,它复制了初始的persistence.xml。实际上,据我所知,EAR将从EJB模块(而不是从JAR)加载持久性元素。因此,EJB模块必须定义persistence.xml配置文件。

最新更新