首页 > 代码库 > 【HQL】分页查询 、对象导航查询、外置命名查询、连接查询、查询过滤器、统计查询
【HQL】分页查询 、对象导航查询、外置命名查询、连接查询、查询过滤器、统计查询
分页查询
List students = session.createQuery("from Student") .setFirstResult(1) .setMaxResults(2) .list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Student student = (Student)iter.next(); System.out.println(student.getName()); }
对象导航查询
session = HibernateUtils.getSession(); session.beginTransaction(); List students = session.createQuery("from Student s where s.classes.name like ‘%2%‘") .list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Student student = (Student)iter.next(); System.out.println(student.getName()); }
外置命名查询
List students = session.getNamedQuery("queryStudent") .setParameter(0, 10) .list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Student student = (Student)iter.next(); System.out.println(student.getName()); }
连接查询
List students = session.createQuery("select c.name, s.name from Student s join s.classes c") .list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Object[] obj = (Object[])iter.next(); System.out.println(obj[0] + ", " + obj[1]); }
List students = session.createQuery("select c.name, s.name from Student s left join s.classes c") .list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Object[] obj = (Object[])iter.next(); System.out.println(obj[0] + ", " + obj[1]); }
List students = session.createQuery("select c.name, s.name from Student s right join s.classes c") .list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Object[] obj = (Object[])iter.next(); System.out.println(obj[0] + ", " + obj[1]); }
查询过滤器
session.enableFilter("testFilter") .setParameter("myid", 10); List students = session.createQuery("from Student").list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Student student = (Student)iter.next(); System.out.println(student.getName()); }
统计查询
List list = session.createQuery("select count(*) from Student").list(); // Long count = (Long)list.get(0); Long count = (Long)session.createQuery("select count(*) from Student").uniqueResult(); // Long count = (Long)session.createQuery("select count(*) from Student") // .setMaxResults(1) // .uniqueResult(); System.out.println("count=" + count);
String hql = "select c.name, count(s) from Classes c join c.students s group by c.name order by c.name"; List students = session.createQuery(hql).list(); for (int i=0; i<students.size(); i++) { Object[] obj = (Object[])students.get(i); System.out.println(obj[0] + ", " + obj[1]); }
【HQL】分页查询 、对象导航查询、外置命名查询、连接查询、查询过滤器、统计查询
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。