[Seasar-user:19506] Re: 【S2Dao】 EntityManagerで上位N件取得を行う場合

Hiroyuki Oonaka [E-MAIL ADDRESS DELETED]
2010年 3月 17日 (水) 14:42:41 JST


大中(せと)です。

On Wed, 17 Mar 2010 05:45:28 +0900
黒瀬健二 <[E-MAIL ADDRESS DELETED]> wrote:


> 実は、実際は上記SQLの「上位N件取得、中間順位取得」を行いたいと思って
> おりまして、oracleだとLIMIT, OFFSET句が使えないため、どのようにすれば
> これが実現できるものかと思案しております。
> (ROWNUM, ROW_NUMBER()関数を利用したいが、EntityManagerだとSELECT文
>  部分が自動生成されて、手を入れられないと思っています。)
> 
> 何か良い方法はありますでしょうか?

EntityManger使用時もS2Pagerは使えます。
http://s2dao.seasar.org/ja/s2pager.html#Rownum

引数でPagerConditionを受け付けて、EntityMagerにはPagerCondition以外の
引数を渡すようにしてください。

    public List getEmployees(PagerCondition condition,String ename) {
        return getEntityManager().find("ename LIKE ?", "%" + ename + "%");
    }


-- 
大中浩行(せとあずさ)
[E-MAIL ADDRESS DELETED]
http://d.hatena.ne.jp/setoazusa/



Seasar-user メーリングリストの案内