4

我有两个具有 FK 关系的表。我想要的相当于:

select A.*, B.*
from A
join B
    on B.A_ID = A.ID

我如何在jOOQ中有效地做到这一点?最后,我需要每个结果行的一个实例ARecord和一个。BRecord

4

1 回答 1

1

像这样

Result<Record> result =
create.select()
      .from(A)
      .join(B).on(B.A_ID.equal(A.ID))
      .fetch();

这将获取A.*, B.*(或更准确地说,A.A1, A.A2, ..., A.AN, B.B1, ...)。现在为了转化result为使用方法:ARecordBRecordResult.into(Table)

ARecord a = result.into(A);
BRecord b = result.into(B);

请注意,这有已知的缺陷。例如,如果A.X是一个具有相应字段B.X(相同字段名称)的字段,A.X则将保存B.X' 值。我为此注册了一个错误报告:#1802

于 2012-09-06T18:45:03.447 回答