在执行select时,是否可以在jOOQ中更改字段数据类型?
例如,我有jOOQ生成的源,并且有字段X,我想更改它的数据类型。我正在尝试添加转换器。
示例:
select(PERSON.field(PERSON.ADDRESS.getName(), addressConverter.getDataType()));
我无法轻易替换表字段。我需要从表字段中删除字段,然后进行新的选择(示例)。
答案 0 :(得分:0)
“更改”字段以获得特定SELECT
查询的新数据类型的最简单方法是使用Field.coerce(DataType)
。例如:
select(PERSON.ADDRESS.coerce(addressConverter.getDataType()))
.from(...)
如果要保留PERSON
表中的所有其他字段,可以按以下步骤操作:
select(Stream.of(PERSON.fields()).map(
f -> f == PERSON.ADDRESS
? f.coerce(addressConverter.getDataType())
: f).toArray(Field[]::new))
.from(...)
当然,您也可以在专用函数中分解这种特定的数据类型替换。