質問: new ArrayList<>(); if(id != null) wheres.add(cb.equal(r.get(Dept_.id), id)); if(deptNo != null) wheres.add(cb.equal(r.get(Dept_.deptNo), deptNo)); if(deptName != null && !deptName.equals("")) wheres.add(cb.like(r.get(Dept_.deptName), "%" + deptName + "%")); if(location != null && !location.equals("")) wheres.add(cb.like(r.get(Dept_.loc), "%" + location + "%")); query.where(wheres.toArray(new Predicate[]{})); // クエリを実行 return em.createQuery(query).getResultList(); } ``` ``` /** * 検索画面のビジネスロジック */ @Stateless public class SearchLogicImpl implements SearchLogic { @Inject private DeptDao dao; /** * 検索処理を実行 * @param bean 検索画面のバッキングBean */ @Override public void search(SearchBean bean){ bean.setDepts(dao.find(bean.getId(), bean.getDeptNo(), bean.getDeptName(), bean.getLoc())); } } ``` ``` /** * 検索ボタン押下時処理 * @return 遷移先画面 */ @Auth public String search(){ // 入力された条件で社員を検索する logic.search(this); return null; } ```
回答: ソートしたいなら、`CriteriaQuery.orderBy()`を使えばいいのではないですかね?