【发布时间】:2019-10-28 06:13:00
【问题描述】:
我正在使用 Gradle 中的 DDLDatabase 生成器来生成 jOOQ 源。在涉及可延迟约束时,我似乎遇到了障碍。
从实时数据库生成相同的 DDL 工作...
这是我对 DDLDatabase 的配置:
jooq {
version = "3.11.11"
edition = "OSS"
reference(sourceSets.main) {
generator {
database {
name = "org.jooq.meta.extensions.ddl.DDLDatabase"
properties {
property {
key = "scripts"
value = "schema-gen/schema.sql"
}
property {
key = "sort"
value = "semantic"
}
}
inputSchema = "REFERENCE"
}
generate {
relations = true
deprecated = false
records = true
immutablePojos = false
fluentSetters = true
}
target {
packageName = "com.octeris.aml.reference.persistence.jooq"
directory = "jooq-gen"
}
}
}
}
这是生成器偶然发现的 DDL 部分:
create table reference.a (
id varchar(100) not null
,foo_id varchar(100)
,constraint a$c$p primary key (id)
,constraint a$f$1 foreign key (foo_id) references reference.b(id) on delete restrict on update restrict deferrable initially deferred
);
报错如下:
Token ')' expected: [8:106] ...rence.b(id) on delete restrict on update restrict [*]deferrable initially deferred
有人知道可以接受的替代语法吗?还是这可能是生成器中的错误?
【问题讨论】:
标签: sql code-generation ddl jooq