Hibernate对查询结果的简单处理
来源:互联网 发布:数控机床加工仿真软件 编辑:程序博客网 时间:2024/04/30 14:17
1.对查询结果进行排序处理
HQL和QBC都支持对查询结果排序。HQL采用关键字order by 关键字对查询结果排序,而QBC 采用org.hibernate.criterion.Order类对查询记过排序
结果按姓名升序排列
//HQL检索方式
Query query = session.createQuery("from Customer c order by c.name");//默认为升序“asc”
//多个条件用Query query = session.createQuery("from Customer c order by c.name asc,c.age desc");
//QBC检索方式
Criteria criteria = session.createCriteria(Customer.class);
criteria.addOrder(Order.asc("name"));
//多个条件加上criteria.addOrder(Order.desc("age"));
2.对查询结果进行分页处理
当进行批量查询数据时,如果查询的数量很大时,会导致无法再用户终端的单个页面上显示所有的查询结果,此时需要对查询结果分页显示。Query和Criteria接口都提供了用于分页获取查询结果的方法。
setFirstResult(int firstResult):设定从哪一个对象开始检索,参数表示其实位置,默认 0
setMaxresult(int maxResults):设定以纯最多检索出的对象数目,默认检索出所有的对象。
(1)Query的用法
Query query = session.creatQuery("from Customer c order by c.name asc");
query.setFirstResult(0);
query.setMaxResults(10);
List list = query.list();
(2)QBC检索方式
Criteria criteria = session.createCriteria(Customer.class);
criteria.addOrder(Order.asc("name"));
query.setFirstResult(0);
query.setMaxResults(10);
List list = query.list();
3.检索单个对象:uniqueResult()方法
(1)Query和Criteria接口都提供了一下list()和uniqueResult()方发,执行查询语句,并返回查询结果的方法。
List()方法:返回一个List类型的查询结果,在List集合中存放了所有满足查询条件的持久化对象
uniqueResult()方法:返回单个对象
在某些情况下,如果希望检索出一个对象,可以先调用setMaxResults(1)方法,把最大检索数目设为1;接下来调用uniqueResult()方法,该方法返回一个Object的对象
//采用HQL检索方式
Customer customer = (Customer)session.creatQuery("from Customer c order by c.name asc")
.setMaxResults(1)
.uniqueResult();
//采用QBC检索方式
Customer customer = (Customer) session.createCriteria(Customer.class)
.addOrder(Order.asc("name"))
.setMaxResults(1)
.uniqueResult();
(2)当我们明确知道查询结果只包含一个对象时,可以不调用setMaxResults(1)方法
//采用HQL检索方式
Customer customer = (Customer)session.creatQuery("from Customer c where c.id=1")
.uniqueResult();
注意:当查询结果包含多个对象时,但没有调用setMaxResults(1),会抛出异常:NonUniqueResultException,
0 0
- Hibernate对查询结果的简单处理
- Hibernate对查询结果的简单处理
- Hibernate多表查询的结果处理
- hibernate 关联查询结果的处理
- Hibernate Native SQL查询常用的2种方法及对返回结果处理
- 对Hibernate 查询结果排序
- Hibernate 多表查询结果集的处理
- Hibernate 多表查询结果集的处理
- Hibernate 多表查询结果集的处理
- Hibernate 多表查询结果集的处理
- hibernate使用原生SQL查询返回结果集的处理
- Hibernate多表联合查询结果处理
- Hibernate多表查询结果处理
- Hibernate多表查询结果处理
- hibernate 多表查询结果集处理
- Hibernate 多表查询结果处理
- hibernate 查询结果的展现
- shell简单处理mysql查询结果
- CCTV曝光学术论文买卖网络产业链 (≡⊥≡)
- Python中正则表达式的应用
- 第一个webservice简单入门实例
- 最常用的详细正则表达式大全
- 同步与异步详解
- Hibernate对查询结果的简单处理
- sqlplus 上下键
- 第十七周 项目6.1 求出每名同学的总分和均分
- 流程控制
- 内部模块化的命令行菜单
- 搬家
- Could not determine type for: String
- samba配置实战
- CronTab命令实例