如何在Scala实体上运行Hibernate的JPAMetaModelEntityProcessor静态元模型生成器

时间:2011-08-19 08:32:06

标签: hibernate scala jpa-2.0

我可以在我的pom.xml中运行基于java的JPA-entites上运行Hibernate的jpamodelgen:

<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>

但没有任何反应。

是否已成功从使用Scala编写的JPA实体生成JPA元模型?

感谢。

1 个答案:

答案 0 :(得分:1)

不要认为这是可能的,因为元模型生成器在javac中作为可插入注释处理器(http://jcp.org/en/jsr/detail?id=269)运行,即在Java源代码上运行。

但是,Javac不会理解你的scala源代码和scalac(据我所知)不能支持JSR 269接口。