2017-03-23 16 views
1

現在、既存のdbを使用する代わりにjpaエンティティからjooqクラスを生成しようとしています。JPADatabaseを使用してH2からJooqクラスを生成できません

このpageに従い、バージョン3.9.1をjooq使用して、私の現在のポンポンのプラグインセクションは

<profile> 
      <id>jooq-jpa</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-compiler-plugin</artifactId> 
         <configuration> 
          <source>1.8</source> 
          <target>1.8</target> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.jooq</groupId> 
         <artifactId>jooq-codegen-maven</artifactId> 
         <version>${jooq.version}</version> 

         <dependencies> 
          <dependency> 
           <groupId>org.jooq</groupId> 
           <artifactId>jooq-meta-extensions</artifactId> 
           <version>${jooq.version}</version> 
          </dependency> 
         </dependencies> 

         <executions> 
          <execution> 
           <goals> 
            <goal>generate</goal> 
           </goals> 
          </execution> 
         </executions> 

         <configuration> 
          <logging>INFO</logging> 

          <generator> 
           <database> 
            <name>org.jooq.util.jpa.JPADatabase</name> 
            <includes>.*</includes> 
            <excludes></excludes> 
            <properties> 
             <property> 
              <key>packages</key> 
              <value>my.entity</value> 
             </property> 
            </properties> 
           </database> 
           <target> 
            <packageName>com.myentity.jooq</packageName> 
            <directory>${project.build.directory}/generated-sources/jooq</directory> 
           </target> 
          </generator> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 

のように見えるこれはありませんMavenのパッケージを実行するときに、成功を生成しますが、jooqクラスが生成されないと予想。ビルドのスタックトレースは、次のとおりです。

[INFO] ARRAYs fetched   : 0 (0 included, 0 excluded) 
[INFO] Enums fetched   : 0 (0 included, 0 excluded) 
[INFO] Packages fetched   : 0 (0 included, 0 excluded) 
[INFO] Routines fetched   : 0 (0 included, 0 excluded) 
[INFO] Tables fetched   : 0 (0 included, 0 excluded) 
[INFO] UDTs fetched    : 0 (0 included, 0 excluded) 
[INFO] Excluding empty catalog : 
[INFO] Removing excess files 
+0

あなたのJPA-注釈付きエンティティはオンになっている:私はこれを明確にするために、ドキュメントを改善するために問題を登録した

 +-------------------+ | Your JPA entities | +-------------------+ ^ ^ depends on | | depends on | | +---------------------+ +---------------------+ | jOOQ codegen plugin | | Your application | +---------------------+ +---------------------+ | | generates | | depends on v v +-------------------------+ | jOOQ generated classes | +-------------------------+ 

ソリューションは、次のモジュールの依存関係グラフを作成することですjOOQコードジェネレータープラグインのクラスパス?私。それらはjOOQコードを生成する前に*コンパイルされていますか? –

+0

番号。それらはプラグイン設定がある同じモジュールの一部です。ジェネレータを実行する前にコンパイルする必要がありますか? – geneqew

+0

プラグインを実行する前に、コンパイル済みのエンティティでテストして動作しました。大変ありがとう@LukasEder。回答として投稿することができますので、私はそれを受け入れられたとマークし、同じ問題に遭遇する可能性のある他の人を助けることができますか? – geneqew

答えて

1

エンティティは、おそらくプラグインを配置したモジュールと同じモジュールにあります。これは、モジュールをコンパイルする前にjOOQコードジェネレーターが呼び出されたことを意味します。つまり、JPAアノテーションされたエンティティーは、jOOQコードジェネレーターがそれらを見つけようとしたときにまだコンパイルされていません。 https://github.com/jOOQ/jOOQ/issues/6011

関連する問題