一个EAR内的多个EJB jar文件共享相同的persistence.xml

时间:2012-03-29 15:51:15

标签: ejb-3.0 ear jboss-4.2.x persistence.xml

我正在使用JBoss 4.2.3应用服务器。

我有一个目前包含2个EJB(EJB 3)jar的EAR。

在主EJB jar中,我有persistence.xml文件和数据源配置。

从辅助EJB jar文件中,我可以成功调用EntityManager,并在包含persistence.xml的主EJB jar中定义读取/写入实体

如果我尝试将实体放在辅助EJB jar模块中,然后通过使用主EJB中的持久性单元的EntityManager保留它,我会得到一个异常:

引起:org.hibernate.hql.ast.QuerySyntaxException:[ENTITY-CLASS-NAME]未映射

我找到的解决方案是在辅助EJB模块中创建另一个persistence.xml并更改持久性单元名称。

我不确定我尝试做的是否正确?您是否可以通过EAR中的多个EJB模块共享相同的persistence.xml(在某种程度上我可以在两个EJB模块中都有实体),您能否做出贡献?

1 个答案:

答案 0 :(得分:0)

将persistence.xml和实体放入EAR的顶级lib /目录中的JAR中。这应该允许持久性单元被EAR中的所有模块使用。