PlayFramework2.2.xのEBeanで検索するベストプラクティス

EBeanで検索して一覧の20件と全体の件数を取得する際にはこのようにして検索ルールを別メソッドにしておくのが便利です。

Modelの中に書かないでServiceクラスを作ってそっちに書くのがベターです。

検索ルールメソッド

 public static PagingList<Site> getSiteCriteriaByCompany(Long companyId) {
        return find.where().eq("company_id", companyId)
                .orderBy().desc("createDate")
                .findPagingList(ApplicationConfigUtils.MAX_PER_PAGE);
    }

一覧を取得

 public static List<Site> getSiteResultListByCompany(Long companyId, Integer page) {
        PagingList<Site> pagingList = getSiteCriteriaByCompany(companyId);
        Page<Site> currentPage = pagingList.getPage(page);
        return currentPage.getList();
    }

件数を取得

 public static Integer getSiteResultCountByCompany(Long companyId, Integer page) {
        PagingList<Site> pagingList = getSiteCriteriaByCompany(companyId);
        return pagingList.getTotalPageCount();
    }

https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/modules/core/app/services/bases/SiteService.java