我正在使用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模块中都有实体),您能否做出贡献?
答案 0 :(得分:0)
将persistence.xml和实体放入EAR的顶级lib /目录中的JAR中。这应该允许持久性单元被EAR中的所有模块使用。