【问题标题】:How do I fetch two different record types from the database?如何从数据库中获取两种不同的记录类型?
【发布时间】:2012-08-31 07:05:49
【问题描述】:

我有两个具有 FK 关系的表。我想要的相当于:

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

如何在jOOQ 中有效地做到这一点?最后,每个结果行我需要一个 ARecord 实例和一个 BRecord 实例。

【问题讨论】:

    标签: sql jooq


    【解决方案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, ...)。现在要将result 转换为ARecordBRecord,请使用Result.into(Table) 方法:

    ARecord a = result.into(A);
    BRecord b = result.into(B);
    

    请注意,这有已知的缺陷。例如,如果A.X 是具有对应字段B.X(相同字段名称)的字段,则A.X 将保存B.X 的值。我已经为此注册了一个错误报告:#1802

    【讨论】:

    • 只是为了让人们知道.. 这个问题 #1802 现在已被标记为已关闭。所以我想它可以安全使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 2016-12-01
    • 2011-05-29
    • 2023-03-29
    相关资源
    最近更新 更多