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

Jooq结果的自定义转换器

葛炯
2023-03-14

实际上,我们正在使用fetchInto()将结果转换为对象列表。

例如:

Employeepojo匹配数据库表为Employee。

List<Employee> employeeList = sql.select(Tables.Employee)
                                 .from(Tables.EMPLOYEE).fetchInto(Employee.class);

类似地,我们如何转换使用连接获取的记录?

例如:

客户pojo匹配数据库表为客户。

员工pojo匹配数据库表为员工

sql.select(<<IWantAllFields>>).from(Tables.CUSTOMER)
                              .join(Tables.EMPLOYEE)
                              .on(Tables.EMPLOYEE.ID.equal(Tables.CUSTOMER.EMPLOYEE_ID))
                              .fetchInto(?);

共有1个答案

郁承运
2023-03-14

要从连接的表源中选择所有字段,只需选择“无”:

Result<Record> result =
sql.select().from(Tables.CUSTOMER)
            .join(Tables.EMPLOYEE)
            .on(...)
            .fetch();

然后,jOOQ将内省已知的表源,并为您生成所有列引用。创建POJO关系的一种方法是使用各种结果之一。intoGroups()方法。例如。:

Map<Integer, List<Customer>> map =
result.intoGroups(CUSTOMER.EMPLOYEE_ID, Customer.class);

这将生成<代码>列表的映射

另一方面:与调用默认记录映射器的任何映射操作一样,当您的JOIN操作生成两倍于相同列名(例如客户ID和员工ID)时,映射可能无法按预期工作,因为默认记录映射器不知道特定列来自哪个表。

对于更复杂的映射,您可能应该实现自己的RecordMapperProvider

 类似资料:
  • 我已经看到,当我们使用或时,JOOQ可以自动返回POJO 但是有可能将复杂查询的结果转换成多个POJO吗? 我测试了方法,它工作得很好。但我没有支持对象。

  • 主要内容:JSF自定义转换器实例我们可以在JSF中创建自己的自定义转换器。 以下列表是我们可以在JSF中创建自定义转换器的步骤。 通过实现接口创建一个转换器类。 实现上述接口的和方法。 使用注解为自定义转换器分配唯一的ID。 JSF自定义转换器实例 打开 NetBeans IDE 创建一个Web工程:CustomConverter,其目录结构如下所示 - 创建以下文件代码,文件:index.xhtml 的代码内容如下所示 - 文

  • I'v开始寻找很好的解决方案,如何使用Spring CassandraOperations很好地持久化实体。问题的出现是因为我的实体中的某些字段不支持cassandra,例如joda DateTime。 解决方法是在java类型的同一实体中有其他字段。util。Date而不是joda DateTime,用@Transient标记未要求的字段。但这并不干净,所以我开始寻找自动自定义转换。 目前,sp

  • 改变json输出策略 默认使用阿里的fastjson进行json输出 JSON.toJSONString(obj) 如果要更换输出策略,操作方式如下: @Override protected void initApiConfig(ApiConfig apiConfig) { ... // 自定义json格式输出,将null字符串变成"" apiConfig.setJson

  • 网关默认对业务结果进行合并,然后返回统一的格式。 针对alipay.story.find接口,微服务端返回结果如下: { "name": "白雪公主", "id": 1, "gmtCreate": 1554193987378 } 网关合并后,最终结果如下 { "alipay_story_find_response": { "msg": "Succe

  • 我们定义了一个testng结果侦听器,它帮助我们将testng.xml中定义的每个测试用例的测试结果发送到一个内部工具,如下所示: } 然后我们将这个侦听器集成到其他项目的testng xml文件中,例如: 它按照设计工作:一旦测试套件完成,测试结果将上传到内部工具。 现在我们有一个要求,在一个项目中,testng.xml中的一个测试用例与内部工具中的3个测试用例相关,这意味着对于testng.x