S2JDBCでのページング処理

NO IMAGE

Seasar2フレームワークのデータアクセス部分のフレームワークとして、
S2JDBCがあります。

S2JDBCにはページング処理を容易に実現可能なLIMIT、OFFSETに対応しており、
SQLを発行する際に、

  selectBySqlFile(
    XXXXDto.class,
    “XXX.sql”,
    param)
    .limit(10)
    .offset(0)
   .getResultList();

と指定するだけで、対象データの取得が可能です。

しかし、この方法で生成されるSQLは、
SQLの最後に、「limit 0,10」が付与される形式となっており
PostgreSQLでは対応していないSQLの形式となっています。

結局、XXX.sqlファイル内のSQLにoffsetを記述して、
limitは上記のように設定することで、とりあえず実現はできました。

フレームワークは様々なRDBMSやアプリケーションサーバーといった環境に対応する必要が
あるので、改めて共通部品を作成する難しさを感じました。