1
2
3 service层方法
4
5 public <E> E outer(Function<Session, E> function) {
6
7 return dao.outer(function);
8 }
9
10 dao层方法
11
12 public <E> E outer(Function<Session, E> function) {
13
14 return function.apply(this.sessionFactory.getCurrentSession());
15 }
16
17 controller层查询方法
18
19 @RequestMapping(value = "/findEntityJson/{pageNum}")
20 public @ResponseBody Object findEntityJson(
21 @PathVariable(value = "pageNum") Integer pageNum){
22 final int pageSize = 5;
23 return baseService.outer((session) -> {
24 JSONObject json = new JSONObject();
25 StringBuffer hql = new StringBuffer();//hql语句
26 hql.append("from Entity where 1=1 ");
27 Query dataQuery = session.createQuery(hql.toString());
28 // 分页
29 dataQuery.setFirstResult((pageNum - 1) * pageSize).setMaxResults(pageSize);
30 json.put("data", Arrays.stream(dataQuery.list().toArray()).map(Entity.class::cast).collect(Collectors.toList()));
31 // 列表数量查询
32 String hql_1 = "select count(*) " + hql.toString();
33 Query sizeQuery = session.createQuery(hql_1);
34 json.put("size", sizeQuery.uniqueResult());
35 return json;
36 });
37 }