我能够在基于java的jpa实体上运行Hibernate的jpamodelgen,在我的pom.xml中有:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>1.1.1.Final</version>
</dependency>
但是对于用Scala编写的实体来说,这当然是失败的。我尝试使用maven-processor-plugin"手动"生成元模型,让我的pom.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>
<!-- list of processors to use -->
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</processors>
<!-- source output directory -->
<outputDirectory>target/metamodel</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>target/metamodel</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
但是什么也没发生。
有人成功地生成JPA元模型从JPA实体写在Scala?
谢谢。
不要认为这是可能的,因为元模型生成器在javac中作为可插入的注释处理器(http://jcp.org/en/jsr/detail?id=269)运行,即在Java源代码上。
Javac,然而,不会理解你的scala源代码和scala(据我所知)不支持JSR 269接口。