(1)sql.append(" select * FROM TRANS_RECORD where merchant_id = 223");
(2)sql.append(" select COUNT(DISTINCT merchant_id) FROM TRANS_RECORD ");
SQLQuery query=session.createSQLQuery(sql.toString());
query.addEntity(TransRecord.class);
List list= query.list();
为什么用(1)能正确执行,用(2)却报“列名无效”。。。。
希望大神来解答,这个问题困扰小弟一天了。。。
------解决方案--------------------
去掉DISTINCT试试看,不知道你的表结构是什么
------解决方案--------------------
那得看一下你的表结构,还有你用的什么数据库,select COUNT(DISTINCT merchant_id) FROM TRANS_RECORD sql server支持,acess不支持
------解决方案--------------------
你试试看为(2)中的列取个别名,如下:
select COUNT(DISTINCT merchant_id) as mid FROM TRANS_RECORD;
注意在SQL语句后最好要补上封号“;”
------解决方案--------------------
query.addEntity(TransRecord.class);去掉
------解决方案--------------------
createSQLQuery这个原生查询,不支持查数量
------解决方案--------------------
distinct这个数据库关键字 不是随便可以用的...你去看看什么时候才可以用distinct吧 它是分情况的