jOOQ 中的隐式连接和 N:N 表

Implicit joins and N:N tables in jOOQ

在当前的 jOOQ 版本中,有一个隐式连接 tables 的功能。

它允许 'navigate' 使用在 table 上定义的外键约束。

它也适用于 n:n table 吗?例如,如果我有 DOCUMENTCLIENT,以及它们之间的 n:n table CLIENT_DOCUMENT,我将如何转换以下查询以使用新语法?

  db.select(*DOCUMENT.fields())
            .from(DOCUMENT)
            .join(CLIENT_DOCUMENT).onKey()
            .join(CLIENT).onKey()
            .where(CLIENT.CLIENT_NAME.eq(name))
            .fetchInto(Document::class.java)

谢谢。

implicit join feature, as of jOOQ 3.13, only works for to-one relationships, not for to-many relationships. There are a variety of planned improvements for future versions: #7536.

但是,m:n 关系可以看作是从关系 table 开始的两个一对一关系。你可以这样写:

db.select(CLIENT_DOCUMENT.document().fields())
  .from(CLIENT_DOCUMENT)
  .where(CLIENT_DOCUMENT.client().CLIENT_NAME.eq(name))
  .fetchInto(Document::class.java)