当前位置: 首页 > 知识库问答 >
问题:

如何从数据库中获取两种不同的记录类型?

颛孙麻雀
2023-03-14

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

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

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

共有1个答案

柯奕
2023-03-14

这样地

Result<Record> result =
create.select()
      .from(A)
      .join(B).on(B.A_ID.equal(A.ID))
      .fetch();

这将获取一个*,B、 *(或者更准确地说,A.A1、A.A2、…、A.AN、B.B1、…)。现在,为了将结果转换为记录,使用结果。输入(表)方法:

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

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

 类似资料:
  • 我得到了这段代码,但我认为这是不好的方法,如果有像100K的结果,它会返回100K的新用户怎么办?对于,我是否可以使用其他方法,但我不太确定如何实现。另外,是否应该使用块?

  • 问题内容: 我有一个表 的学生 这样 我想获取所有记录,但不应重复邮政编码。因此,在上述表记录的情况下,应获取记录1和2。将不会提取第3条记录,因为它的邮政编码已在第1条记录中。 问题答案: 以下查询将仅选择不同的“ zip”字段。 以下查询将选择所有字段以及不同的zip字段。

  • 问题内容: 我有一个ResultSet返回不同类型的数据。该查询是动态构造的,因此在编译时,我不知道查询将返回哪种类型的值。 假设所有结果都是字符串,我编写了以下代码。但是我也想获取每个值的类型。我怎样才能做到这一点? 以下是我编写的代码。 此时,我想获取列类型,并根据数据类型获取值。 问题答案: 所述返回一个指定列类型值发现。 例:

  • 我有一个特定的任务,就是使用Apache Flink和一些附加逻辑将两个数据流连接到一个聚合中。 基本上我有两个数据流:事件流和所谓的元事件流。我使用Apache Kafka作为消息主干。我试图实现的是根据元事件中给出的信息触发评估的聚合/窗口。基本情况是: 事件的数据流开始发出的记录; 记录基于某个键在某个聚合或窗口中不断累积; 元事件数据流接收一个带有给定键的新,该键还定义了将在事件数据流中发

  • 我正试图成为一个动觉消费者客户。为了解决这个问题,我阅读了《Kinesis开发人员指南》和AWS文档http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-record-processor-implementation-app-java.html. 我想知道是否有可能从两个不同的流中获取数据并进行相应的处理。 假设我有两个不同的流,分别是流1和流