S2Pagerを使ってみました。

S2PagerはS2Dao経由でセットを取得する際、ページングを行ってくれるコンポーネントです。
※最初から使えるようになっててもいいと思うのですが。

公式サイトのS2Pagerを参考にしました。
http://s2dao.seasar.org/ja/s2pager.html

s2-dao-1.0.35.jarを使っているのですが、
dao.diconの編集でハマりました(泣)
下記の警告が出て、実行時はエラーになるのです。

[component] org.seasar.dao.impl.DaoMetaDataFactoryImplのvalueTypeFactoryプロパティには、nullが設定されます。

MLなどを調べてみたら、

<component class="org.seasar.dao.impl.ValueTypeFactoryImpl"/>

の一文が足りないようでした。

結果、dao.diconはこうなります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components namespace="dao">
<include path="j2ee.dicon"/>

<component class="org.seasar.dao.impl.ValueTypeFactoryImpl"/>

<component
name="annotationReaderFactory"
class="org.seasar.dao.impl.FieldAnnotationReaderFactory"
/>
<component
name="resultSetFactory"
class="org.seasar.dao.pager.PagerResultSetFactoryWrapper">
<description>limit offset句を利用しない場合。useScrollCursorはカーソルの使用有無</description>
<arg>
<component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
</arg>
<property name="useScrollCursor">true</property>
</component>
<!−−
<component
name="resultSetFactory"
class="org.seasar.dao.pager.PagerResultSetFactoryLimitOffsetWrapper">
<description>limit offset句を利用した高速取得。MySQLPostgreSQLのみ動作確認済み</description>
<arg>
<component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
</arg>
<arg>j2ee.dataSource</arg>
</component>
−−>
<component
class="org.seasar.dao.impl.DaoMetaDataFactoryImpl">
<arg>j2ee.dataSource</arg>
<arg>
<component class="org.seasar.dao.pager.PagerStatementFactory"/>
</arg>
<!−−
<arg>
<component class="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
</arg>
−−>
<arg>resultSetFactory</arg>
<arg>annotationReaderFactory</arg>
</component>
<component name="interceptor"
class="org.seasar.dao.pager.PagerS2DaoInterceptorWrapper">
<arg>
<component name="s2dao"
class="org.seasar.dao.interceptors.S2DaoInterceptor">
</component>
</arg>
</component>
<!−−
<component
class="org.seasar.dao.impl.DaoMetaDataFactoryImpl"/>
<component name="interceptor"
class="org.seasar.dao.interceptors.S2DaoInterceptor"/>
−−>
</components>