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

JOOQ多场定制型转换器

易宣
2023-03-14

我们有一些反映到多个数据库字段的自定义类型。例如

PersonName{
  String salutation, 
  String firstName, 
  String lastName
}

存储为3个单独的db字段。总是写作很无聊

db.select(PERSON.FIRST_NAME, PERSON.LAST_NAME, PERSON.SALUTATION, ... some other fields)

然后从相应的记录字段中获取记录并创建PersonName类型。

其思想是定义一些多列自定义字段,在查询执行期间由jooq将其扩展为三个“真实”字段,并打包到结果中的一个PersonName对象。

看起来用org.jooq.impl.AbstractField可以做这样的事情,但我想知道,可能已经有解决这种情况的方法了。

共有1个答案

鲁丰
2023-03-14

存在支持此类功能的待定功能请求:

  • https://github.com/jOOQ/jOOQ/issues/2360(嵌套记录)

利用jOOQ 3.6的现成功能,您可以将这些列存储在以下位置:

Field<?>[] personName = {
    PERSON.SALUTATION,
    PERSON.FIRST_NAME,
    PERSON.LAST_NAME
};

然后按如下方式选择:

db.select(personName)
  .select(... some other fields);
 类似资料:
  • 在我的jOOQ配置文件中,我为日期字段定义了一个转换器,但是在forcedType的节中定义类型的条件时遇到了一些问题。 对于测试,我使用了表达式: 以及在类型上: 我希望匹配数据类型为DATE的所有列。取而代之的是,它不匹配任何一个列,除了一个类型为DATE的列之外,就像其他不匹配的列一样,但这个列的def:CURRENT DATE列似乎与此匹配。 为了让它工作,我必须使用: 有人能给我解释一下

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

  • 问题 在代码生成期间,我在配置到自定义POJO的映射时遇到了一些问题。 问题 我已经实现了,但想知道如何注册它以在代码生成阶段使用,或者即使这是可能的? 更多上下文 我喜欢波霍斯 如果有帮助,我将使用DefaultConfiguration对象(一个bean)配置jOOQ: 然后对于代码生成,我在gradle中配置它: 我确信这两种配置之间存在脱节,但我无法从文档中了解如何同步这些配置。理想情况下

  • 如何将自定义转换器添加到mu Spring Boot应用程序?我的实体字段 我的转换器是 我有个例外 我怎样才能修好它,请帮帮我!

  • 我试图将PostgreSQL(9.4)UUID绑定到每个UUID周围的包装类数组。请注意,这些包装器在整个应用程序中都是集成的,因此删除它们不是一个选项。我正在使用jOOQ和它的maven插件(3.5.1)来生成PoJo、记录和表类。 我在绑定数据库模式时遇到问题的相关部分如下所示: 然后,我尝试使用forcedType元素转换该类,但它生成的类无法编译。放弃这一点,我只是将它们作为UUID生成,

  • 我正试图在Jooq的帮助下实现一个软件,将数据读写到h2数据库中。我的PLC_数据表有一个带有时间戳的列,该列通常映射到LocalDateTime,但我需要将该数据映射到POJO中的Instant,因此我编写了自定义转换器: 我在我的文件中引用了forcedType: 我已经注释了我的POJO: 当我从DB读到我的POJO时,代码工作得很有魅力,如下所示: 但当我尝试在数据库中写入一些数据时,我在