[seasar-dev:1023] Re: リリース計画

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2009年 1月 26日 (月) 20:05:43 JST


中村(taedium)です。

DoltengのGenerate Master Detail Applicationですが、
Teeda + S2Daoの組み合わせで使ってみました。

いつくか気づいたことがあるのでお伝えします。

1)ページングが効いていない。
S2Daoでページングをする際はjdbc.diconに設定を記述する必要があります。
今はjdbc.diconに次のような設定がありますが、

  <component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
  <component class="org.seasar.extension.jdbc.impl.ConfigurableStatementFactory">
    <arg>
      <component class="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
    </arg>
    <property name="fetchSize">100</property>
  </component>

これを次のように変えると大丈夫になります。

  <!-- LIMIT OFFSET句を使ったSQL書き換えによるページング処理用設定 -->
  <component name="pagingSqlRewriter" class="org.seasar.dao.pager.LimitOffsetPagingSqlRewriter"/>
  <component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
  <component class="org.seasar.extension.jdbc.impl.ConfigurableStatementFactory">
      <arg>
          <component class="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
      </arg>
      <property name="fetchSize">100</property>
  </component>

2)ORDER BYが効いていない
今はDaoでORDER BYの記述がありますが、これは実際のSQLに
反映されていません。
ORDER BY句はSQLファイルに直接記述すればいいと思います。

3)検索条件のパラメータが重複している
DaoメソッドのパラメータとPagerConditionのプロパティの両方で
検索条件が指定できるようになっていますが、これはどちらか一方で
大丈夫です。
今は、Daoメソッドのパラメータが使われていますね。
それならば、PagerConditionに
検索条件のプロパティはないほうがいいと思います。

4)select count(*) from ...用のDaoメソッドが定義されている
S2Daoでは、ページング処理をするとPagerConditionのcountプロパティに
select count(*) from ...の件数が自動で設定されるようになっています。
これを使えばselect count(*) from...専用のメソッドが不要に
なってすっきりすると思います。
-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



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