2016-11-21 201 views
2

在做select時,jOOQ可以更改字段數據類型嗎?jOOQ選擇字段數據類型

例如我有jOOQ生成的來源,並有字段X,我想改變它的數據類型。我正在嘗試添加轉換器。

實施例:

select(PERSON.field(PERSON.ADDRESS.getName(), addressConverter.getDataType())); 

我不能輕易更換表字段。我需要從表格字段中刪除字段,然後進行新的選擇(例子)。

回答

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(...) 

當然,你也可以分析出這個特定的數據類型更換在一個專門的功能。