0

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

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

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

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

如果我尝试将实体放在辅助 EJB jar 模块中,然后通过使用主 EJB 中的持久性单元的 EntityManager 将其持久化,则会出现异常:

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

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

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

4

1 回答 1

0

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

于 2012-03-30T20:11:23.333 回答