在S2SH整合中如何对其多表联合查询出来的数据,进行分页和排序
2011-11-03 17:49
513 查看
因为常规的hibernate中,使用HQL语句进行多表联合查询,然后分页和排序没有效果,如:
Queryquery = session
.createQuery("fromUser as u left join fetch u.customers where u.userId =? order byu.customers.customerName “+order+”");
query.setInteger(0,user.getUserId());
query.setFirstResult(page.getFirstResult());
query.setMaxResults(3);
List<User>users = query.list();
LinkedHashSet<User>us = new LinkedHashSet<User>(users);
所以想了一个取巧的方法就是返原回到SQL语句来进行相关操作,但是要注意了是使用的数组还是集合要好好区别开来。如:
List<Customer>customers =newArrayList<Customer>();
SQLQueryquery = session.createSQLQuery("selectu.*,t.*
from user_rqw u left outer join tbl_customer t on u.user_id =t.user_id where u.user_id =? order by t.customer_name "+order+"");
query.setInteger(0,user.getUserId());
query.addEntity("u",User.class);
query.addEntity("t",Customer.class);
query.setFirstResult(page.getFirstResult());
query.setMaxResults(3);
List<Object[]>os = query.list();
for(Object[]ret:os){
Customer customer =(Customer) ret[1];
customers.add(customer);
}
returncustomers;
这样就实现了排序和分页功能。可能还有很多方法,需要探究。
Queryquery = session
.createQuery("fromUser as u left join fetch u.customers where u.userId =? order byu.customers.customerName “+order+”");
query.setInteger(0,user.getUserId());
query.setFirstResult(page.getFirstResult());
query.setMaxResults(3);
List<User>users = query.list();
LinkedHashSet<User>us = new LinkedHashSet<User>(users);
所以想了一个取巧的方法就是返原回到SQL语句来进行相关操作,但是要注意了是使用的数组还是集合要好好区别开来。如:
List<Customer>customers =newArrayList<Customer>();
SQLQueryquery = session.createSQLQuery("selectu.*,t.*
from user_rqw u left outer join tbl_customer t on u.user_id =t.user_id where u.user_id =? order by t.customer_name "+order+"");
query.setInteger(0,user.getUserId());
query.addEntity("u",User.class);
query.addEntity("t",Customer.class);
query.setFirstResult(page.getFirstResult());
query.setMaxResults(3);
List<Object[]>os = query.list();
for(Object[]ret:os){
Customer customer =(Customer) ret[1];
customers.add(customer);
}
returncustomers;
这样就实现了排序和分页功能。可能还有很多方法,需要探究。
相关文章推荐
- 如何对分库后的数据进行分页查询?
- 读xml文档中数据并对其进行排序,然后在datagrid中显示出来
- 使用该JavaBean可以将数据在JSP页面中以表格的形式显示出来,并具有动态排序、动态生成查询、自动分页功能
- vector元素为自定义数据时如何进行排序
- Django如何进行数据访问查询
- 根据从redis缓存的数据查询出来,在从数据库中取出所有的数据,俩个数据进行比较,去掉重复,剩下库中新插入的数据,取出新数据,然后把redis中的缓存数据清空把从数据库中查出来的所有数据放到redis缓存中
- 使用srpingJPA进行分页,排序和模糊查询
- DataTable数据进行排序、检索、合并、分页、统计
- 解决Mysql数据库实现多表联合查询及按照其中一个字段进行排序问题
- LINQ--联合查询表,按记录数分页读取数据
- 小小编程之我见(2)---jsp页面如何对进行所查询出的结果再分页
- c# 读取文本中的一行用逗号连接数据,并对其进行排序
- 模仿百度对查询出来数据做数据分页与遇到的PropertyNotFoundException异常
- 安卓:查询sqlite数据库中的数据,分页加载显示出来
- SQL分页存储过程(不支持多表联合查询,不支持多字段排序)
- sql查询一些数据进行正序排序,除外的数据进行倒序排序
- jsp如何进行查询分页
- asp.net中对DataTable数据进行排序、检索、合并、分页、统计
- 百万数据进行查询与排序
- 如何:对 DataGridView 控件中的数据进行排序