Solución:
Sería increíble si alguien también conociera los pasos para configurar esto en Eclipse (supongo que es tan simple como configurar un procesador de anotaciones, pero nunca se sabe)
Sí lo es. Aquí están las implementaciones e instrucciones para las diversas implementaciones de JPA 2.0:
EclipseLink
org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor
Hibernar
org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor
- http://in.relation.to/2009/11/09/hibernate-static-metamodel-generator-annotation-processor
OpenJPA
org.apache.openjpa.persistence.meta.AnnotationProcessor6
- http://openjpa.apache.org/builds/2.4.1/apache-openjpa/docs/ch13s04.html
DataNucleus
org.datanucleus.jpa.JPACriteriaProcessor
- http://www.datanucleus.org/products/accessplatform_2_1/jpa/jpql_criteria_metamodel.html
La última implementación de Hibernate está disponible en:
- https://mvnrepository.com/artifact/org.hibernate/hibernate-jpamodelgen/
Una implementación anterior de Hibernate está en:
- http://repository.jboss.com/maven2/org/hibernate/hibernate-jpamodelgen/1.0.0.Final/hibernate-jpamodelgen-1.0.0.Final.jar
Por favor, eche un vistazo a jpa-metamodels-with-maven-example.
Hibernar
- Nosotros necesitamos
org.hibernate.org:hibernate-jpamodelgen
. - La clase de procesador es
org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor
.
Hibernar como dependencia
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>${version.hibernate-jpamodelgen}</version>
<scope>provided</scope>
</dependency>
Hibernar como procesador
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<compilerArguments>-AaddGeneratedAnnotation=false</compilerArguments> <!-- suppress java.annotation -->
<processors>
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>${version.hibernate-jpamodelgen}</version>
</dependency>
</dependencies>
</plugin>
OpenJPA
- Nosotros necesitamos
org.apache.openjpa:openjpa
. - La clase de procesador es
org.apache.openjpa.persistence.meta.AnnotationProcessor6
. - OpenJPA parece requerir un elemento adicional
<openjpa.metamodel>true<openjpa.metamodel>
.
OpenJPA como dependencia
<dependencies>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>-Aopenjpa.metamodel=true</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
OpenJPA como procesador
<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>${version.openjpa}</version>
</dependency>
</dependencies>
</plugin>
EclipseLink
- Nosotros necesitamos
org.eclipse.persistence:org.eclipse.persistence.jpa.modelgen.processor
. - La clase de procesador es
org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor
. - EclipseLink requiere
persistence.xml
.
EclipseLink como dependencia
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
<scope>provided</scope>
</dependency>
EclipseLink como procesador
<plugins>
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<processors>
<processor>org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor</processor>
</processors>
<compilerArguments>-Aeclipselink.persistencexml=src/main/resources-${environment.id}/META-INF/persistence.xml</compilerArguments>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
<version>${version.eclipselink}</version>
</dependency>
</dependencies>
</plugin>
DataNucleus
- Nosotros necesitamos
org.datanucleus:datanucleus-jpa-query
. - La clase de procesador es
org.datanucleus.jpa.query.JPACriteriaProcessor
.
DataNucleus como dependencia
<dependencies>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-jpa-query</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
DataNucleus como procesador
<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.datanucleus.jpa.query.JPACriteriaProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-jpa-query</artifactId>
<version>${version.datanucleus}</version>
</dependency>
</dependencies>
</plugin>
El soporte JPA 2.0 de Eclipse a través de Dali (que se incluye en “Eclipse IDE para desarrolladores JEE”) tiene su propio generador de metamodelos integrado con Eclipse.
- Seleccione su proyecto en el Explorador de paquetes
- Ir a Propiedades -> JPA diálogo
- Seleccione la carpeta de origen de Metamodelo canónico (JPA 2.0) grupo
- Hacer clic Solicitar botón para generar clases de metamodelo en la carpeta de origen seleccionada
Esto debería funcionar en cualquier proveedor de JPA ya que las clases generadas son estándar.
Vea también aquí.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)