に二つのテーブルを結合フェッチすることができます私は2つのテーブル間の結合をしたい、例えばUSER
とROLE
の場合、これらの2つのテーブルのPOJOに結果をフェッチするにはどうすればよいですか? 、jOOQは、私は、たとえば、自動生成さjOOQに私はPOJOをテーブルの行を取得したい場合はjOOQでそれぞれのPOJO
答えて
はこれがあなたの代わりにLEFT JOIN
を使用したい場合は、ResultQuery.fetchGroups(RecordMapper, RecordMapper)
Map<UserPojo, List<RolePojo>> result =
dsl.select(USER.fields())
.select(ROLE.fields())
.from(USER)
.join(USER_TO_ROLE).on(USER.USER_ID.eq(USER_TO_ROLE.USER_ID))
.join(ROLE).on(ROLE.ROLE_ID.eq(USER_TO_ROLE.ROLE_ID))
.where(USER.U_EMAIL.equal(email))
.fetchGroups(
// Map records first into the USER table and then into the key POJO type
r -> r.into(USER).into(UserPojo.class),
// Map records first into the ROLE table and then into the value POJO type
r -> r.into(ROLE).into(RolePojo.class)
);
注意を使用して一つの解決策である(ユーザーは、必ずしもすべての役割を持っていない場合には、あなたは、ユーザーごとに空のリストを取得したいです) NULL
ロールを空のリストに自分で変換する必要があります。
あなたがキーとしてHashMap
でそれらを置くことができるようにするために、あなたのPOJOにequals()
とhashCode()
を生成するアクティブ化していることを確認してください:
<pojosEqualsAndHashCode>true</pojosEqualsAndHashCode>
ありがとうございます。しかし、これは 'fetchLazy'とどのように組み合わせることができるのだろうか? –
@Kango_V:良い点。これらの2つの機能は現在組み合わせることはできません。私はこのための機能要求を作成しました:https://github.com/jOOQ/jOOQ/issues/6046。もちろん、あなたの 'Cursor'(' fetchLazy() 'から)をJava 8の' Stream'に変換し、 'collect()'を使って結果をグループ化することができます。 –
1対多関係? FeatureテーブルとTierテーブルがあり、1つのティアには複数の機能があります。そのため、Map
- 1. JOOQ fetchLazy POJOに
- 2. JOOQ POJOオブジェクトを別のPOJOで取得 - テーブル内の外部キー
- 3. JooqはPOJOの欠落コメントを生成します
- 4. jOOQ参加したテーブルからPOJOとIDを返します
- 5. POJOからレコードへのjooQマッパー
- 6. jOOQは、PostgreSQLのテーブルから生成コード
- 7. jOOQ、Java - 生成されたJavaファイルをインポートするには?
- 8. vert.xとJOOQを統合する方法(自動生成DAOとPOJOと接続プーリングを使用)
- 9. jOOQ - カラムとテーブルを関数に渡すには?私のデータベースで
- 10. JOOQモデルAPI:insertQueryとPostgresは通常のJOOQのDSLで声明
- 11. Jooq pojoImplements:ビューとテーブル
- 12. jOOQで生成されたコードをコンパイルできませんか?
- 13. 生成されたキーを返すjOOQの挿入クエリ
- 14. jOOQ
- 15. jooq
- 16. JOOQでスキーマを作成するには?
- 17. JOOQ 3.1テーブル専用コード生成
- 18. JOOQ取引
- 19. POJOを使用してJOOQレコードの変更されたフィールドのみを更新する
- 20. コード生成のないJooq insert文
- 21. jOOQ Configurationオブジェクトの作成方法は?
- 22. JOOqスパースアップデート
- 23. jOOQコードジェネレータ
- 24. JOOQで生成されたクラスのスキーマはPUBLICにデフォルトで設定されています
- 25. Jooqはビューのクラスを生成します
- 26. チェーン及び作曲Jooqは
- 27. jOOQ PostgreSQLの
- 28. JOOQのコミットフック
- 29. 動的にJOOQクエリを作成する
- 30. 取引は、私は非常によく似ているコードを持ってJOOQ
どのようにユーザーとロールに接続されていますか? 1対多数?多対一?多対多? –
多対多なので、テーブルがあります。UserToRole –