hibernate sql 问题,求大神解答
(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不支持 --------------------编程问答-------------------- 哦,忘了说了,我用的是oracle数据库。那条语句在oracle里能跑通,但是在程序里就报列名无效。表要是有问题,那(1)语句也不能通过吧 --------------------编程问答-------------------- 你试试看为(2)中的列取个别名,如下:
select COUNT(DISTINCT merchant_id) as mid FROM TRANS_RECORD;
注意在SQL语句后最好要补上封号“;” --------------------编程问答-------------------- query.addEntity(TransRecord.class);去掉 --------------------编程问答-------------------- createSQLQuery这个原生查询,不支持查数量 --------------------编程问答-------------------- distinct这个数据库关键字 不是随便可以用的...你去看看什么时候才可以用distinct吧 它是分情况的
补充:Java , Web 开发