2017-02-23 56 views
0

有一個與我的MySQL數據庫 類型[整數]兩個字段,這裏是我的sql如何設置出休眠數據的類型選擇

選擇A * B爲C從表

問題我應該在我的模型中設置的數據類型是什麼字段[c]

我嘗試使用[integer] [long] [String]設置類型,表示所有帖子錯誤消息「參數類型不匹配」。 非常感謝

部分代碼:

String hql = " SELECT deviceid,"+ " MAX(CASE cashboxname WHEN 'cash1' THEN cbVal*cbCnt ELSE 0 END) as cashboxonebal,"  
    List<DeviceInfo> devBalanceList = super.listBySql(hql,paraList.toArray(),DeviceInfo.class,false); 
    public <N extends Object>List<N> listBySql(String sql,Object[] args,Map<String,Object> alias,Class<?> clz,boolean hasEntity){ 
    sql = this.initSort(sql); 
    SQLQuery sqlQuery = this.getSession().createSQLQuery(sql); 
    this.setAliasParameter(sqlQuery, alias); 
    this.setParameter(sqlQuery, args); 
    if(hasEntity){ 
     sqlQuery.addEntity(clz); 
    }else{ 
     sqlQuery.setResultTransformer(Transformers.aliasToBean(clz)); 
    } 
    return sqlQuery.list(); 
} 

java class 
@Transient 
private BigDecimal cashboxonebal; 
+0

請發表您的代碼。 –

+0

請參考,謝謝 – samirliang

回答

0

取決於數據庫,但由於兩個整數的乘積可能溢出,我認爲longnumeric也將是有用的類型在這裏。

既然你說過「休眠」,那麼在Java中它可能就是BigDecimal

+0

感謝您的回覆,當我設置類型[BigDecimal]時,休眠也會發布錯誤消息「參數類型不匹配」。 – samirliang

0

解決!!! 第一,修改SQL爲[選擇卡斯塔* B爲C從表] ,然後在Java類中使用的BigDecimal 這就是工作