JOOQ多场定制型转换器

时间:2015-06-18 13:43:12

标签: java jooq

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

PersonName{
  String salutation, 
  String firstName, 
  String lastName
}

存储为3个单独的数据库字段。 总是写

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

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

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

看起来可以使用org.jooq.impl.AbstractField执行此类操作,但我想知道,可能已经有针对此类情况的解决方案。

1 个答案:

答案 0 :(得分:0)

有一些待处理的功能请求支持此类功能:

使用jOOQ 3.6的开箱即用功能,您可以将这些列存储在以下位置:

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

然后选择它们:

db.select(personName)
  .select(... some other fields);