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

Jooq record.into(Pojo.class)具有相同字段名的问题

蓝昊然
2023-03-14

我有从2个表中检索2个对象(由JooQ生成的POJO)的一条记录的代码。

 Record record = dsl.select()
            .from(ISSUE)
            .leftJoin(CLIENT).on(CLIENT.ID.eq(ISSUE.CLIENT_ID))
            .where(ISSUE.ID.eq(id))
            .fetchOne();
    JIssue jIssue = record.into(JIssue.class);
    JClientRecord jClient = record.into(JClientRecord.class);

表ISSUE和表CLIENT都有PK字段“ID”。

问题是当映射到(POJO.class)时,具有相同名称的表字段没有正确映射到POJO。在上面的示例中,jIssue获取jClient的id。

当使用TableRecords而不是POJO的所有映射都正确完成时,但您不能在生成的DAO中使用TableRecords,它需要生成的POJO。

我怎样才能解决这个问题,以便jooq可以正确地映射到生成的pojo字段?

共有1个答案

郜昊苍
2023-03-14

POJO类没有任何可靠的元信息来清楚地消除源记录中两个同名列之间的歧义。但是,您可以将连接的记录复制到每个表的表记录中,然后将该记录再次复制到POJO中:

JIssue jIssue = record.into(ISSUE).into(JIssue.class);
JClientRecord jClient = record.into(CLIENT).into(JClientRecord.class);
 类似资料:
  • 我使用的是,我需要展平包含同名字段的文档。 我创建的文档如下所示: 在那之后,我试图像下面这样压平文档: 我的主要方法是: 展平后,我得到的文档包含一个展平字段,但我必须得到两个展平字段。 如何解决此问题?

  • 问题内容: 考虑以下代码 如果名称重叠,如何访问外部类的字段? 我尝试了以下方法: 并收到编译错误。 现实生活中会不会发生这种情况? 问题答案: 最好的解决方案是为字段赋予有意义的名称和不同的名称。但这并不总是可能的… 要获取字段或外部实例,您可以使用 或者该字段是静态的 注意:通常是缩写(取决于实际定义的位置) 同样,您需要调用外部类的实例方法。 要么 注意:在Java 8中,您有可能是基于实例

  • 问题内容: 如果您有一个包含带有重复属性的文本输入的表单,并且该表单已经过帐,那么您仍然能够从PHP数组中获取所有字段的值吗? 问题答案: 否。仅最后一个输入元素可用。 如果要使用相同名称的多个输入,请使用输入名称属性。然后将包含foo的数组,其中包含来自输​​入元素的所有值。 如果不使用则仅包含最后一个值的原因是因为PHP基本上只会爆炸并遍历要填充的原始查询字符串。当遇到已经存在的名称/值对时,

  • 我有一个PDF文件,其中包含一个表单,其中的字段具有相同的字段名。这是为了共享文档中的数据而做的。例如,我有合同,此文档的每一页都必须有公司名称,我将公司名称写在一个表单字段中,并将其复制到当前文档的所有页面,但是当我尝试使用库阅读此文档时,我没有得到此数据,因为只创建一个字段名为的字段,而另一个字段名为clean。 如何使用库读取具有相同字段名称的字段?

  • 我有两个名为Site和AppSite的对象,两个对象都有如下相同的字段。是否有任何util类将所有字段从AppSite复制到站点,如BeanUtils。copyProperties。 如果你看到上面的两个pojo,我有两个对象字段列表。两个对象也一样,只有Site和AmsSite对象。有相同的字段名,但不同的类名。 BeanUtils.copy属性是将所有文字字段值从AppSite正确复制到Sit

  • 我有一个要求,我必须使用Itext在PDF表单中填充值。 表单i具有多个具有相同字段名的字段。概念是在PDF表单字段名称通用的情况下填充相同的值。 因此,如果有两个或更多名为txtSysTime的字段,那么代码应该在所有字段中填充系统时间。 我的问题基本上是 Itext是否支持这种功能? 如果可能的话,我们怎么能做同样的事情呢 我正在使用以下代码进行相同的尝试: 使用此代码,第一个同名字段中的值将