0
我正在使用QueryDSL的SQL版本及其代碼生成器來從數據庫構建我的Q-Classes和相應的Java POJOS。QueryDSL SQL。 Char Y/N數據庫字段爲模型中的布爾屬性
使用舊的數據庫(火鳥),我們有一些數據庫CHAR(1)
列視爲布爾,其域名爲'Y
'和'N'
。將這些列投影到我的模型屬性以自動將這些Y/N值映射或轉換爲布爾Java類型時,有什麼辦法嗎?
我正在使用QueryDSL的SQL版本及其代碼生成器來從數據庫構建我的Q-Classes和相應的Java POJOS。QueryDSL SQL。 Char Y/N數據庫字段爲模型中的布爾屬性
使用舊的數據庫(火鳥),我們有一些數據庫CHAR(1)
列視爲布爾,其域名爲'Y
'和'N'
。將這些列投影到我的模型屬性以自動將這些Y/N值映射或轉換爲布爾Java類型時,有什麼辦法嗎?
querydsl-sql將返回正在使用的JDBC驅動程序映射的類型。我會建議使用Projections.constructor
來實例POJO,並有如下返回boolean
一個getter:
List<Pojo> pojos = query
.select(Projections.constructor(Pojo.class, qtable.yesNoValue))
.fetch();
public class Pojo {
private final String yesNoValue;
public Pojo(String yesNoValue) {
this.yesNoValue = yesNoValue;
}
public boolean getYesNoValue() {
return "Y".equals(yesNoValue);
}
}
同樣,你可以創建的com.querydsl.core.types.MappingProjection
一個具體的實例中,覆蓋protected abstract T map(Tuple row)
與所需的類型實例化POJO。