使用 jOOQ 和 Gradle 生成代码时出现"Ambiguous type name"错误



当我尝试用jOOQ生成代码时,我会遇到很多错误,比如:

Ambiguous type name      :
The object pg_catalog.unnest generates a type org.jooq.example.gradle.db.pg_catalog.tables.Unnest
which conflicts with the existing type
org.jooq.example.gradle.db.pg_catalog.tables.Unnest on some operating systems.
Use a custom generator strategy to disambiguate the types.

不确定操作系统应该如何处理它。以前从未使用过jOOQ。据我所知,它应该连接到Postgres数据库,并生成一些java代码,稍后可以用来对数据库运行查询。

我在build.gradle中有以下配置(取自https://www.jooq.org/doc/latest/manual/code-generation/codegen-gradle/)

// Use your favourite XML builder to construct the code generation configuration file
// ----------------------------------------------------------------------------------
def writer = new StringWriter()
def xml = new groovy.xml.MarkupBuilder(writer)
.configuration('xmlns': 'http://www.jooq.org/xsd/jooq-codegen-3.13.0.xsd') {
jdbc() {
driver('org.postgresql.Driver')
url('jdbc:postgresql://localhost:5432/metrics')
user('postgres')
password('pwd')
}
generator() {
database() {
}
// Watch out for this caveat when using MarkupBuilder with "reserved names"
// - https://github.com/jOOQ/jOOQ/issues/4797
// - http://stackoverflow.com/a/11389034/521799
// - https://groups.google.com/forum/#!topic/jooq-user/wi4S9rRxk4A
generate() {
}
target() {
packageName('org.jooq.example.gradle.db')
directory('src/main/java')
}
}
}
// Run the code generator
// ----------------------
org.jooq.codegen.GenerationTool.generate(writer.toString())

作为一个初学者,我被这个错误淹没了。。。

我必须设置模式

database() {
inputSchema('public')
}

这解决了的问题

相关内容

最新更新