如何生成JPA 2.0元模型?

本着与CriteriaQuery相关的types安全的精神,JPA 2.0还有一个API来支持实体的元模型表示。

是否有人知道这个API的全function实现(生成元模型,而不是手动创build元模型类)? 如果有人知道在Eclipse中设置这个步骤(我认为这与设置注释处理器一样简单,但你永远不知道),这将是非常棒的。

编辑:只是偶然发现Hibernate JPA 2元模型生成器 。 但问题仍然存在,因为我找不到任何jar的下载链接。

编辑2:自从我问这个问题以来已经过去了,但是我想我会回来并添加一个链接到SourceForge上的Hibernate JPA Model Generator项目

如果有人知道在Eclipse中设置这个步骤的话,这将是非常棒的(我认为这与设置注释处理器一样简单,但你永远不知道)

是的。 以下是各种JPA 2.0实现的实现和说明:

的EclipseLink

  • org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor

过冬

OpenJPA的

DataNucleus将


对于Hibernate,实现由hibernate-jpamodelgen-1.0.0.Final.jar

修订(2014年3月)

请看jpa-metamodels-with-maven

过冬

最推荐使用Hibernate。

我没有判断这些实现的任何特性/function/可用性/稳定性,上面的语句只关注我构build的maven用法。

 <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId> <executions> <execution> <id>process</id> <goals> <goal>process</goal> </goals> <phase>generate-sources</phase> <configuration> <processors> <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor> </processors> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-jpamodelgen</artifactId> <version>4.3.4.Final</version> </dependency> </dependencies> </plugin> 

OpenJPA的

OpenJPA似乎需要额外的元素<openjpa.metamodel>true<openjpa.metamodel>

 <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId> <executions> <execution> <id>process</id> <goals> <goal>process</goal> </goals> <phase>generate-sources</phase> <configuration> <processors> <processor>org.apache.openjpa.persistence.meta.AnnotationProcessor6</processor> </processors> <optionMap> <openjpa.metamodel>true</openjpa.metamodel> </optionMap> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.apache.openjpa</groupId> <artifactId>openjpa</artifactId> <version>2.3.0</version> </dependency> </dependencies> </plugin> 

的EclipseLink

EclipseLink需要persistence.xml

 <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId> <executions> <execution> <id>process</id> <goals> <goal>process</goal> </goals> <phase>generate-sources</phase> <configuration> <processors> <processor>org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor</processor> </processors> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId> <version>2.5.1</version> </dependency> </dependencies> </plugin> 

========================================

对于Apache Maven用户,

以下简单的configuration似乎工作。 ( 用老的maven-compiler-plugin;更新。

 <!-- This method doesn't work with newest maven-compiler-plugin --> <!-- But if it's ok to work with old maven-compiler-plugin --> <!-- This is the best method --> <!-- There is no other required configurations --> <!-- We don't even require to config any processor names --> <project> <build> <extensions> <extension> <groupId>org.hibernate</groupId> <artifactId>hibernate-jpamodelgen</artifactId> <version>1.3.0.Final</version> </extension> </extensions> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <!-- this is critical --> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project> 

你可以运行“mvn compiler:compile”

UPDATE

请注意,这种方法只适用于那些老的maven-compiler-plugin。 检查代码中的版本。

Eclipse的JPA 2.0支持通过Dali(包含在“Eclipse IDE for JEE Developers”中)包含了自己的与Eclipse集成的元模型生成器。

  1. 包资源pipe理器中select您的项目
  2. 转到属性 – > JPA对话框
  3. Canonical元模型(JPA 2.0)组中select源文件夹
  4. 单击“ 应用”button,在选定的源文件夹中生成元模型类

在这里输入图像说明

这应该适用于任何JPA提供者,因为生成的类是标准的。

另见这里 。

对于eclipselink,只有以下依赖性足以生成元模型。 没有别的是必要的。

  <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId> <version>2.5.1</version> <scope>provided</scope> </dependency> 

对于hibernate作为提供者是最常见的恕我直言:

在Gradle,Maven等构build工具的情况下,您需要在类path和编译器级别> = 1.6中安装Hibernate JPA 2元模型生成器jar,您只需构build项目并自动生成元模型即可。

在IDE Eclipse 1. goto Project-> Properties-> Java Compiler-> Annotation Processing的情况下启用它。 2.展开Annotation Processing-> Factory Path-> Add External Jar添加Hibernate JPA 2 Metamodel Generator jar检查新添加的jar并说OK。 清洁和build立完成!

链接hibernateJPA 2元模型生成器jar链接从maven回购https://mvnrepository.com/artifact/org.hibernate/hibernate-jpamodelgen