java8 Lambad表达式自己的例子

 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 }

 

posted @ 2018-01-10 16:24  薄焦尾  阅读(656)  评论(0编辑  收藏  举报