我似乎无法弄清楚我应该如何让 EclipseLink 的 CanonicalModelProcessor 为映射在 orm.xml 文件中的实体生成元数据类,这些实体不是当前编译单元中的源文件,而是包含在编译器的类路径中。
我正在尝试使用 maven 执行此操作,只需调用编译器插件而无需任何其他选项。我可以验证 EclipseLink 注释处理器是否执行,并找到 persistence.xml 和 orm.xml,并成功处理这两个文件。只有当它在内部遍历“RoundElement”类并尝试映射持久性单元中定义的内容时才会失败。显然,类路径中的类不在“roundElements”列表中,因此不会为它们生成任何代码,即使它们的元数据在内部 PersistenceUnit 对象中存在且有效。
有谁知道我怎样才能让它工作?谢谢!
编辑: pom.xml 的摘录:
<dependencies>
<dependency>
<groupId>com.model</groupId>
<artifactId>app-model</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
<version>2.5.2</version>
</dependency>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
</plugins>
</build>
摘自 orm.xml:
...
<entity class="com.model.app.AppClass">
.... AppClass is defined in app-model artifact
</entity>