コード例 #1
0
 @Filter(name = "orderByCount")
 public void orderByCountCourses(
     HashMap<String, Object> data,
     FilterQuery<GroupBooks> query,
     FilterCountQuery<GroupCourses> countQuery) {
   Join join = query.getRoot().join("courses", JoinType.LEFT);
   query.getCriteriaQuery().groupBy(query.getRoot().get("id"));
   boolean desc = (boolean) data.get("desc");
   if (desc) {
     query
         .getCriteriaQuery()
         .orderBy(query.getCriteriaBuilder().desc(query.getCriteriaBuilder().count(join)));
   } else {
     query
         .getCriteriaQuery()
         .orderBy(query.getCriteriaBuilder().asc(query.getCriteriaBuilder().count(join)));
   }
 }