FK リレーションを持つ 2 つのテーブルがあります。私が欲しいのは以下と同等です:
select A.*, B.*
from A
join B
on B.A_ID = A.ID
jOOQでこれを効率的に行うにはどうすればよいですか? 最後に、結果の行ごとに の 1 つARecord
のインスタンスとの 1 つのインスタンスが必要です。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