2016-09-14 6 views
1

DB2に接続するライセンスが付与されたjooq 3.7.2(java 6)で動作するように '除外'できません。大文字小文字を区別しないバージョンも試してみました。私は何が欠けていますか?私は、スキーマmyschema内の別名を無視して、別のスキーマ内の別のテーブルを指しているだけです。私は警告を受け取ります。 'あいまいな型名:オブジェクトXは、既存の型#ful qualified class name#'と衝突する#型の修飾されたクラス名を生成します。誰もこの問題を経験したことがありますか?jooq 3.7.2 for Java6は、スキーマが使用されている場合に除外されません

<generator> 
          <name>org.jooq.util.DefaultGenerator</name> 
          <database> 
           <name>org.jooq.util.db2.DB2Database</name> 
           <includes>.*</includes> 
           <excludes>myschema\.alias</excludes> 
           <schemata> 
            <schema> 
             <inputSchema>myschema</inputSchema> 
             <outputSchema>dest</outputSchema> 
             <outputSchemaToDefault>true</outputSchemaToDefault> 
            </schema> 
            <schema> 
             <inputSchema>otherschema</inputSchema> 
             <outputSchema>dest</outputSchema> 
             <outputSchemaToDefault>true</outputSchemaToDefault> 
            </schema> 
           </schemata> 
          </database> 
          <target> 
           <packageName>org.comp.model</packageName> 
           <directory>target/generated-sources/jooq</directory> 
          </target> 
         </generator> 
+0

私は私の答えに警告を説明してきました。しかし、あなたは "除外"があなたのために働いていないと言いました。おそらくもう少し情報を表示できますか? 'myschema.alias'は' CREATE ALIAS ... 'のように別名ですか? –

+0

スキーマA - > - >表1、表2およびスキーマB - has - >表3、A1(スキーマA.Table1への別名)。両方のスキーマを同じターゲットスキーマにリダイレクトするコード生成時スキーママッピングを実行しようとしています。 jooqは、わかりやすいあいまいさについての警告を出していました。あいまいさは、jooqがschemaB.A1とschemaA.Table1を検討しているときにスキーママッピングを行い、両方が「同じオブジェクト」を指しているからです。それで、私たちはjooqが正規表現schemaA \ .A1を使ってエイリアスを除外しようとするのをやめようとしましたが、あいまいさがまだ残っています。 – Gopal

+0

jooqでエイリアスを無視する方法は? – Gopal

答えて

0

警告は、指定したexcludesタグとは関係ありません。警告ソースはここにある:

<schema> 
    <inputSchema>myschema</inputSchema> 
    <outputSchema>dest</outputSchema> 
    <outputSchemaToDefault>true</outputSchemaToDefault> 
</schema> 
<schema> 
    <inputSchema>otherschema</inputSchema> 
    <outputSchema>dest</outputSchema> 
    <outputSchemaToDefault>true</outputSchemaToDefault> 
</schema> 

あなたは両方のスキーマと同じターゲット・スキーマdestmyschemaotherschemaをリダイレクト、コード生成時のスキーマ・マッピング()を使用しています。これを行い、両方のスキーマに表示される単一のオブジェクト(テーブルなど)がある場合、jooQが重複するクラス名をどうするかわからない場合、このあいまいさが発生します。限りDB2の別名が懸念しているとして、彼らはjOOQ 3.8のようまだサポートされていません

https://github.com/jOOQ/jOOQ/issues/5564を参照)

関連する問題