Java6的jooq3.7.2不';如果使用架构,则不排除

Java6的jooq3.7.2不';如果使用架构,则不排除,java,jooq,Java,Jooq,我无法让“excludes”与连接到db2的许可JOOQ3.7.2(Java6)一起工作。还尝试了不区分大小写的版本。我错过了什么?我只想忽略模式myschema中指向otherschema中其他表的别名。我收到一条警告“类型名称不明确:对象X生成的类型#完全限定类名#与现有类型#完全限定类名#冲突”。以前有人遇到过这个问题吗 <generator> <name>org.jooq.util.DefaultGenera

我无法让“excludes”与连接到db2的许可JOOQ3.7.2(Java6)一起工作。还尝试了不区分大小写的版本。我错过了什么?我只想忽略模式myschema中指向otherschema中其他表的别名。我收到一条警告“类型名称不明确:对象X生成的类型#完全限定类名#与现有类型#完全限定类名#冲突”。以前有人遇到过这个问题吗

<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>

org.jooq.util.DefaultGenerator
org.jooq.util.db2.DB2Database
.*
myschema\.别名
迈斯切玛
目的地
真的
其他模式
目的地
真的
org.comp.model
目标/生成源/jooq

您收到的警告可能与您指定的
排除标记无关。警告来源如下:


迈斯切玛
目的地
真的
其他模式
目的地
真的
您正在使用代码生成时模式映射(),将模式
myschema
otherschema
重定向到同一目标模式
dest
。如果您这样做了,并且两个模式中都出现了一个对象(例如,一个表),那么jOOQ将不知道如何处理重复的类名,从而导致这种歧义


就DB2别名而言,它们在jOOQ 3.8(请参阅)中还不受支持。您收到的警告可能与您指定的
excludes
标记没有任何关系。警告来源如下:


迈斯切玛
目的地
真的
其他模式
目的地
真的
您正在使用代码生成时模式映射(),将模式
myschema
otherschema
重定向到同一目标模式
dest
。如果您这样做了,并且两个模式中都出现了一个对象(例如,一个表),那么jOOQ将不知道如何处理重复的类名,从而导致这种歧义


就DB2别名而言,从jOOQ 3.8开始,它们还不受支持(请参见)

我已经在回答中解释了警告。但你说“排除”不适合你。你能不能再多介绍一下?
myschema.alias
是否是
CREATE alias…
中的别名?架构A—具有-->表1、表2和架构B—具有-->表3、A1(架构A.Table1的别名)。我们正在尝试进行代码生成时模式映射,将两个模式重定向(正如您所指出的)到相同的目标模式。jooq发出了关于模棱两可的警告,这是可以理解的。这种歧义是因为jooq在进行模式映射时考虑了schemaB.A1和schemaA.Table1,两者都指向“同一个对象”。因此,为了避免我们试图禁止jooq在excludes下使用正则表达式schemaA\.A1考虑别名,但仍然存在歧义。只有A1完全忽略了别名。如何使jooq忽略别名?感谢您提供这些详细信息。我目前还没有找到一种简单的方法来防止这些别名干扰代码生成。我在jOOQ()中注册了一个正式别名支持问题。作为一种解决方法,您可以扩展
DB2Database
并钩住表定义逻辑,或者可以使用
XMLDatabase
,如本文所述:我已经在回答中解释了警告。但你说“排除”不适合你。你能不能再多介绍一下?
myschema.alias
是否是
CREATE alias…
中的别名?架构A—具有-->表1、表2和架构B—具有-->表3、A1(架构A.Table1的别名)。我们正在尝试进行代码生成时模式映射,将两个模式重定向(正如您所指出的)到相同的目标模式。jooq发出了关于模棱两可的警告,这是可以理解的。这种歧义是因为jooq在进行模式映射时考虑了schemaB.A1和schemaA.Table1,两者都指向“同一个对象”。因此,为了避免我们试图禁止jooq在excludes下使用正则表达式schemaA\.A1考虑别名,但仍然存在歧义。只有A1完全忽略了别名。如何使jooq忽略别名?感谢您提供这些详细信息。我目前还没有找到一种简单的方法来防止这些别名干扰代码生成。我在jOOQ()中注册了一个正式别名支持问题。作为一种解决方法,您可以扩展
DB2Database
并钩住表定义逻辑,也可以使用
XMLDatabase
,如下所述: