4

FK リレーションを持つ 2 つのテーブルがあります。私が欲しいのは以下と同等です:

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

jOOQでこれを効率的に行うにはどうすればよいですか? 最後に、結果の行ごとに の 1 つARecordのインスタンスとの 1 つのインスタンスが必要です。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, ...)。ここで、メソッドに変換resultARecordBRecord使用するには、次のようにします。Result.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 に答える