如何在DataNucleus JDO实现中为类型安全查询系统生成QFoo类?

时间:2012-03-19 01:14:27

标签: groovy code-generation jdo datanucleus

我创建了一个名为 Domain 的maven模块。在这个模块中,我拥有用Groovy编写的数据库的所有实体类。直到当前的问题,这种配置一直运行良好。

根据the directions on the DataNucleus page,我设置了我的maven pom,如下所示。我的实体类增强得很好,我可以将它们用于所有常规的老式Query API。但是,我没有 QProduct 样式代码生成的类,例如将为我创建文档声明。有谁知道我必须做些什么才能生成这些类?

编辑:我忘了提到我在盒子上安装了1.6 jdk,并且我在Maven上设置了1.6源和目标的必要位。

    <dependencies>
        <!-- JDO Dependencies -->
        <dependency>
            <groupId>org.datanucleus</groupId>
            <artifactId>datanucleus-core</artifactId>
            <version>[2.9, )</version>
        </dependency>
        <dependency>
            <groupId>org.datanucleus</groupId>
            <artifactId>datanucleus-api-jdo</artifactId>
            <version>[2.9, )</version>
        </dependency>
        <dependency>
            <groupId>org.datanucleus</groupId>
            <artifactId>datanucleus-jdo-query</artifactId>
            <version>[2.9, )</version>
        </dependency>
        <dependency>
            <groupId>javax.jdo</groupId>
            <artifactId>jdo-api</artifactId>
            <version>[3.0, 4.0)</version>
        </dependency>
   </dependencies>

    <build>
        <sourceDirectory>src/main/groovy</sourceDirectory>
        <plugins>
            <!-- This plugin does compile time enhancement of the entity classes using
                 bytecode weaving -->
            <plugin>
                <groupId>org.datanucleus</groupId>
                <artifactId>maven-datanucleus-plugin</artifactId>
                <version>3.0.0-release</version>
                <configuration>
                    <metadataIncludes>**/entities/*.class</metadataIncludes>
                    <generateConstructor>true</generateConstructor>
                    <enhancerName>ASM</enhancerName>
                    <quiet>true</quiet>
                    <verbose>false</verbose>
                </configuration>
                <executions>
                    <execution>
                        <id>enhance-classes</id>
                        <goals>
                            <goal>enhance</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

1 个答案:

答案 0 :(得分:0)

使用JDK1.6 +,因为这将调用CLASSPATH中的任何注释处理器。适合所有人。与“maven-datanucleus-plugin”无关。 “Q”类只是编译步骤的一部分(或更好的“预编译”)