JOOQ 中的外键关系如何运作?让我澄清一下:
在代码中,您可以调用使用外部表 B.a() 访问主表的方法。
假设我正在打电话
dsl.select(B.a().ID).from(B).fetchInto(String.class);
它在JOOQ的盒子里使用左连接吗?
隐式路径连接如果您的外键可为空,则默认使用
LEFT JOIN
;如果您的外键不可为空,则默认使用 INNER JOIN
。
生成的默认连接类型是:
用于具有不可为空父级的一对一路径段INNER JOIN
用于具有可为空父级的一对一路径段LEFT JOIN
但是,如果您总是喜欢
LEFT JOIN
,则可以覆盖此行为,例如:
Settings settings = new Settings()
.withRenderImplicitJoinType(RenderImplicitJoinType.LEFT_JOIN);