[英]What are the consequences of disabling relation generation in the JOOQ generator?
我可以通过设置以下配置选项来禁用JOOQ生成器中的标识,外键和唯一键生成:
<generate>
<!-- Primary key / foreign key relations should be generated and used.
This is a prerequisite for various advanced features.
Defaults to true -->
<relations>false</relations>
尽管元模型中没有FK / UK信息,但是禁用这一代人的后果到底是什么? JOOQ本身的哪些功能取决于此信息?
本质上,您将无法使用手册中有关CRUD的部分中记录的大多数功能:
http://www.jooq.org/doc/latest/manual/sql-execution/crud-with-updatablerecords/
没有主键知识,就没有UpdatableRecord
。 即,您将无法编写以下内容:
// 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中仅在少数几个地方使用外键信息,其中包括导航方法 :
BookRecord book = DSL.using(configuration)
.selectFrom(BOOK).where(BOOK.ID.eq(1)).fetchOne();
// This won't work
AuthorRecord author = book.fetchParent(FK_BOOK_AUTHOR);
还计划增强代码生成器以生成此类导航方法( #4210 ),这意味着以下操作无效:
// This won't work
AuthorRecord author = book.fetchFkBookAuthor();
或者,合成的JOIN ON KEY
子句:
DSL.using(configuration)
.select()
.from(AUTHOR)
.join(BOOK).onKey()
.fetch();
将来还会有其他功能,具体取决于约束信息的可用性,但是普通的SQL语句不受影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.