2017-02-23 59 views
0

было два поля типа [целым] в моей БД MySQL здесь мой SQLКак я могу установить тип ВНЕ данных в спящем режиме выбора

выберите * б, как с из таблицы

вопрос является какой тип данных следует установить в моей модели с полем [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

В зависимости от базы данных, а потому, что умножение двух целых чисел может возможно переполнение, я предполагаю, что long и numeric также будут полезными типы здесь.

Поскольку вы сказали «Спящий режим», это может быть также BigDecimal на Java.

+0

спасибо за ваш ответ, когда я установил тип с помощью [BigDecimal], hibernate также опубликует сообщение об ошибке «несоответствие типа аргумента». – samirliang

0

решена !!! первых, изменить SQL для [выберите Каста * б, как с из таблицы] , а затем использовать BigDecimal в классе Java Thats работал