2016-12-15 81 views
0

我正在使用QueryDSL的SQL版本及其代碼生成器來從數據庫構建我的Q-Classes和相應的Java POJOS。QueryDSL SQL。 Char Y/N數據庫字段爲模型中的布爾屬性

使用舊的數據庫(火鳥),我們有一些數據庫CHAR(1)列視爲布爾,其域名爲'Y'和'N'。將這些列投影到我的模型屬性以自動將這些Y/N值映射或轉換爲布爾Java類型時,有什麼辦法嗎?

回答

1

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。

相關問題