如何在休眠选择中设置输出数据的类型

时间:2017-02-23 06:40:29

标签: hibernate

我的mysql数据库中有两个类型为[integer]的字段 这是我的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;

1 个答案:

答案 0 :(得分:0)

解决!!! 首先,修改sql到[从表中选择casta * b作为c] 然后在java类中使用bigdecimal 多数民众赞成的工作