我无法排除'排除'使用连接到db2的许可jooq 3.7.2(java 6)。尝试了不区分大小写的版本。我错过了什么?我只是想忽略schema myschema中的别名,指向其他表中的其他表。我收到一个警告'不明确的类型名称:对象X生成一个类型#fully限定类名#,它与现有类型#fully qualified class name#'冲突。有没有人以前遇到过这个问题?
<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 :(得分:0)
您收到的警告可能与您指定的excludes
标记无关。警告源在这里:
<schema>
<inputSchema>myschema</inputSchema>
<outputSchema>dest</outputSchema>
<outputSchemaToDefault>true</outputSchemaToDefault>
</schema>
<schema>
<inputSchema>otherschema</inputSchema>
<outputSchema>dest</outputSchema>
<outputSchemaToDefault>true</outputSchemaToDefault>
</schema>
您正在使用代码生成时架构映射(as documented here),将架构myschema
和otherschema
重定向到同一目标架构dest
。如果你这样做,并且在两个模式中都有一个对象(例如一个表),你就会明白这种模糊性,而jOOQ不知道如何处理重复的类名。
就DB2别名而言,从jOOQ 3.8开始就不支持它们(参见https://github.com/jOOQ/jOOQ/issues/5564)