createSQLQuery,addScalar列名用大写

[code]public List findByGroupByMaterial(String date1,String date2){
try {
StringBuffer hql = new StringBuffer();
hql.append("SELECT t.mt_material_id ID, ")
.append(" t1.name mt_name, ")
.append(" t1.code MT_CODE, ")
.append(" SUM(t.num)NUM, ")
.append(" SUM(decode((SELECT substr(s.code, ")
.append(" 0, ")
.append(" 3) ")
.append(" FROM im_affair_type s ")
.append(" WHERE s.id = t.im_affair_type_id), ")
.append(" 'imp', ")
.append(" 1, ")
.append(" 'exp', ")
.append(" -1) * t.num * t.price) MONEY ")
.append("FROM im_affair t, ")
.append(" mt_material t1 ")
.append("WHERE t.mt_material_id = t1.id AND ")

.append(" To_date('"+date1+"', ")
.append(" 'yyyy-mm-dd') <= ")
.append(" t.accountant_date AND ")
.append(" t.accountant_date >= ")
.append(" To_date('"+date2+"', ")
.append(" 'yyyy-mm-dd') ")

// .append(" t.accountant_date BETWEEN ")
// .append(" To_date('"+date1+"', ")
// .append(" 'yyyy-mm-dd') AND ")
// .append(" To_date('"+date2+"', ")
// .append(" 'yyyy-mm-dd') ")
.append("GROUP BY t.mt_material_id, ")
.append(" t1.NAME, ")
.append(" t1.code ");

List list = session.createSQLQuery(hql.toString())
.addScalar("ID", Hibernate.LONG)//这里ID要用大写才对,不然会报列名错误
.addScalar("MT_NAME", Hibernate.STRING)//
.addScalar("MT_CODE", Hibernate.STRING)
.addScalar("NUM", Hibernate.DOUBLE)
.addScalar("MONEY", Hibernate.DOUBLE)//同上,都要大写
.list();
log.info("findByGroupByMaterial successful and the list size is "+list.size());
return list;
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw e;
}
}[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值