簡體   English   中英

當結果記錄有兩列具有相同名稱的不同表時,如何在 jooq 中按名稱選擇列?

[英]How can I select a column by name in jooq, when result record has two columns of different tables with the same name?

我正在使用 Jooq 並且作為帶有一些連接的查詢的結果,我有一個Record列表。

這條記錄包括兩列名為“id”的列,我需要選擇其中之一。

方法有 String 作為參數,並且在傳遞“id”時沒有失敗(可能返回第一次出現)。

我看到的另一種選擇是使用接收帶有索引的 int 的方法 這可以正常工作,但我寧願避免它。

我在這種情況下找到的最佳選擇是使用接收Field作為參數的方法 通過使用 Field 我們可以指定表和列名,這樣我們就可以確定我們正在選擇我們想要的列。

所以基本上,如果我們的表 A 和 B 在查詢結果中都有“id”列,我們可以定義一個字段

final Field<UUID> bId = tableB.ID;

然后在處理結果時,我們可以通過

query.fetch().forEach(r -> { UUID theId = r.get(bId); });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM