Java 在JOOQ生成器中禁用关系生成的后果是什么?

Java 在JOOQ生成器中禁用关系生成的后果是什么?,java,sql,code-generation,jooq,Java,Sql,Code Generation,Jooq,我可以通过设置以下内容在JOOQ生成器中禁用标识、外键和唯一键生成: 假的 尽管FK/UK信息未出现在元模型中,但禁用这一代的具体后果是什么?JOOQ本身的哪些功能取决于这些信息?基本上,手册中关于CRUD的部分中记录的大多数功能将不适用于您: 主键 如果不了解主键,就不会有。也就是说,您将无法编写以下内容: // This works: MyTableRecord record = DSL.using(configuration) .selectFrom(MY_TABLE)

我可以通过设置以下内容在JOOQ生成器中禁用标识、外键和唯一键生成:


假的

尽管FK/UK信息未出现在元模型中,但禁用这一代的具体后果是什么?JOOQ本身的哪些功能取决于这些信息?

基本上,手册中关于CRUD的部分中记录的大多数功能将不适用于您:

主键 如果不了解主键,就不会有。也就是说,您将无法编写以下内容:

// This works:
MyTableRecord record =
DSL.using(configuration)
   .selectFrom(MY_TABLE)
   .where(MY_TABLE.ID.eq(1))
   .fetchOne();

// These won't work:
record.store();
record.update();
record.refresh();
record.delete();

// This will still work:
record.insert();
外键 外键信息目前仅在jOOQ的少数地方使用,其中包括:

还计划增强代码生成器以生成此类导航方法(),这意味着以下方法将无法工作:

// This won't work
AuthorRecord author = book.fetchFkBookAuthor();
或者,综合条款:

根据约束信息的可用性,将来还会有其他功能,但普通SQL语句不受影响

BookRecord book = DSL.using(configuration)
                     .selectFrom(BOOK).where(BOOK.ID.eq(1)).fetchOne();

// This won't work
AuthorRecord author = book.fetchParent(FK_BOOK_AUTHOR);
// This won't work
AuthorRecord author = book.fetchFkBookAuthor();
DSL.using(configuration)
   .select()
   .from(AUTHOR)
   .join(BOOK).onKey()
   .fetch();