[Seasar-user:22141] DBFlute 1.1.2 で 外出しSQLページング

竹内学 [E-MAIL ADDRESS DELETED]
2017年 3月 9日 (木) 10:15:10 JST


竹内です。お世話様です。

さて、現在 DBFlute 1.1.2 + Oracle Database 11g + Spring boot の環境でアプリケーションを作成しておりますが、
外出しSQLのページングで嵌まっております。
# 互換性パラメータは 1.1.2 のデフォルトのままです。

sqlは
/*
[df:title]
...

[df:description]
...
*/
-- #df:entity#

-- !df:pmb extends Paging!
-- !!AutoDetect!!

/*IF pmb.isPaging()*/
select ...

とコメントに宣言しています。生成された Pmb は

public class SimpleXxxxPmb extends SimplePagingBean implements
ParameterBean, FetchBean { ... }

となっています。

しかし、xxxxBhv.outsideSql().traditionalStyle().selectPage(XxxxBhv.PATH_selectSimpleXxxx,
pmb, SimpleXxxx.class);

と呼ぶと

java.lang.IllegalStateException: Unknown paging handling
parameter-bean: SimpleXxxxPmb:{...}

と怒られてしまいました。

ソースを見ますと、pmb はインタフェース ManualPagingHandlingPmb か AutoPagingHandlingPmb
の実装で無いといけないようですが、
その様なクラスは自動生成されず、自前で作成しなくてはならいのでしょうか?

それとも何か設定が抜けているのでしょうか?

因みに、extends Paging では無く extends ManualPaging でも同じでした。

しようが無いので、手で自動生成された Pmb を

public class SimpleXxxxPmb extends SimplePagingBean implements
ParameterBean, FetchBean, ManualPagingHandlingPmb<XxxxBhv, SimpleXxxx>
{
  ....
  @Override
  public Class<SimpleXxxx> getEntityType() {
    return SimpleXxxx.class;
  }

  @Override
  public String getOutsideSqlPath() {
    return XxxxBhv.PATH_selectSimpleXxxx;
  }
}

と修正しましたら問題無く動作しました。

何卒よろしくお願いいたします。


-- 
竹内 学 <mailto:mtakeuchi @ ailesys.co.jp>
株式会社エールシステム


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