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执行的结果好像都视同为一个字段。请教各位。
------解决方案--------------------
楼主不是分页查询吗?是不是跟这个有关系呢?