2012-09-26 42 views
5

我使用querydsl-maven-plugin來從Oracle 11g數據庫導出Q路徑。我現在面臨的問題是,甲骨文NUMBER字段映射到NumberPath<java.math.BigDecimal>而不是NumberPath<Long>如何告訴querydsl-maven-plugin使用Long生成NumberPath而不是BigDecimal?

有什麼辦法,我可以指導querydsl-maven-plugin代碼生成過程中翻譯BigDecimalLong

我現在採用的方法是使用插件生成代碼,然後手動翻譯類型。

任何提示將不勝感激。

回答

2

這是目前有可能在querydsl - Maven的插件的配置聲明自定義的用戶類型,如本

<configuration> 
    <customTypes> 
    <customType>com.example.NumericLongType</customType> 
    </customTypes> 
</configuration> 

com.example.NumericLongType需要實現的com.mysema.query.sql。 types.Type接口

但理想這應該是這樣的

<configuration> 
    <overrides> 
    <NUMERIC>java.lang.Long</NUMERIC> 
    </overrides> 
</configuration> 

和Querydsl將處理返回數值映射到內部長。

隨時爲它打開一張票。

更新

數字映射現在是可定製的Querydsl https://github.com/mysema/querydsl/issues/273

+0

是有相關文件證明如何配置呢? – bert

+0

您可以依靠問題中提到的默認映射或通過此配置方法添加覆蓋項http://www.querydsl.com/static/querydsl/2.9.0/apidocs/com/mysema/query/sql/Configuration .html#registerNumeric%28int,%20int,%20java.lang.Class%29 –

+0

謝謝,我正在挖掘queryDSL代碼並發現這一點。有可能通過maven配置來做到這一點?只是好奇,因爲我想我會使用MappingProjection bert

相關問題