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