当前位置: 代码迷 >> J2EE >> hibernate query.createSQLQuery 别名不起作用,该如何处理
  详细解决方案

hibernate query.createSQLQuery 别名不起作用,该如何处理

热度:80   发布时间:2016-04-22 02:07:26.0
hibernate query.createSQLQuery 别名不起作用
Manager代码:
Java code
service.getPageModelForSql("select em.name ,pc.date,dept.name as dname,p.name as pname ,pc.postNum " +                "from t_postcount pc ,t_post p ,t_employees em ,t_department dept " +                "where pc.post = p.id and pc.epid = em.id and p.pid = dept.id " +                "and em.id = "+employeesId+" order by dept.id,pc.date desc ", offset, pageSize);

执行代码:
Java code
Query query = this.getSession().createSQLQuery(sql); //sql就是以上sql语句

查询结果代码:
Java code
List list = query.list();        for (int i=0;i<query.list().size();i++){            Object[] o = (Object[]) query.list().get(i);             System.out.println((String)o[0]+"==="+(Date)o[1]+"==="+(String)o[2]+"==="+(String)o[3]+"==="+Integer.parseInt(o[4].toString()));        }


输出结果:
张三===2012-01-15 00:00:00.0===张三===张三===3
张三===2011-11-11 00:00:00.0===张三===张三===8
张三===2011-11-12 00:00:00.0===张三===张三===5

mysql执行结果:
张三 2012-01-15 00:00:00 神外一区 大夜班 3
张三 2011-11-12 00:00:00 神外一区 大夜班 5
张三 2011-11-11 00:00:00 神外一区 大夜班 8

因为要取三个表中都是NAME的字段,所以hibernate执行的结果好像都视同为一个字段。请教各位。

------解决方案--------------------
楼主不是分页查询吗?是不是跟这个有关系呢?
  相关解决方案