我有一个jar库A(或eclipse中的项目),它具有它自己的持久性单元(META-INF / persistence.xml)和一些实体类,还有另一个使用该持久性单元的项目(B)。在项目B中,还存在持久性单元和实体类。

在项目BI中,需要同时使用项目A和项目B中的两个实体类。但是,如果我将“ A”设置为持久性单元名称,则如果此查询在项目B的实体中,则EntityManager无法创建命名查询。如果我将“ B”设置为持久性单元名称,它无法从项目A的实体创建命名查询。错误消息为:

NamedQuery of name: MyEntityName.myQueryName not found.


持久性单元可以以某种方式包括其他持久性单元吗?还是有其他方法可以解决这个问题?

最佳答案

EclipseLink 2.3引入了Composite Persistence Units,它允许您创建一个持久性单元,该持久性单元实际上仅充当两个或多个实际持久性单元的容器。这样,您就可以在应用程序中使用该单个复合持久性单元,就好像只有一个持久性单元一样。这应该满足您保持persistence.xml文件干净以使模型轻松同步到数据库的目标。很酷的东西。

08-24 19:21