Как сгенерировать классы QFoo для системы безопасных запросов в реализации DataNucleus JDO? - PullRequest
0 голосов
/ 19 марта 2012

Я создал модуль maven с именем Домен .В этом модуле у меня есть все мои классы сущностей для моей базы данных, написанные на Groovy.Вплоть до этой текущей проблемы эта конфигурация работала довольно хорошо.

Согласно указаниям на странице DataNucleus , я настроил мой maven pom, как показано ниже.Мои классы сущностей улучшаются очень хорошо, и я могу использовать их для всех обычных старомодных 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 голосов
/ 19 марта 2012

Используйте JDK1.6 +, так как это вызовет любые процессоры аннотаций, найденные в CLASSPATH.Работает для всех остальных.Ничего общего с "maven-datanucleus-plugin".Классы «Q» являются просто частью этапа компиляции (или, лучше сказать, «предварительной компиляции»)

...