【发布时间】:2012-08-31 07:05:49
【问题描述】:
我有两个具有 FK 关系的表。我想要的相当于:
select A.*, B.*
from A
join B
on B.A_ID = A.ID
如何在jOOQ 中有效地做到这一点?最后,每个结果行我需要一个 ARecord 实例和一个 BRecord 实例。
【问题讨论】:
我有两个具有 FK 关系的表。我想要的相当于:
select A.*, B.*
from A
join B
on B.A_ID = A.ID
如何在jOOQ 中有效地做到这一点?最后,每个结果行我需要一个 ARecord 实例和一个 BRecord 实例。
【问题讨论】:
这样
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 转换为ARecord 和BRecord,请使用Result.into(Table) 方法:
ARecord a = result.into(A);
BRecord b = result.into(B);
请注意,这有已知的缺陷。例如,如果A.X 是具有对应字段B.X(相同字段名称)的字段,则A.X 将保存B.X 的值。我已经为此注册了一个错误报告:#1802
【讨论】: