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 }