S2JDBCの新機能

  • [CONTAINER-153] - S2JDBC で,問い合わせ結果を List で返すのではなく,1 件ずつコールバックする機能を追加しました.
  • [CONTAINER-156] - S2JDBCSQL 自動生成による問い合わせで,SELECT COUNT(*) の結果を取得する getCount() メソッドを追加しました.[Seasar-user:12500]
  • 2008-01-18

    希望の機能が入っただけでなく、欲しいよなぁと思っていたgetCount()の機能が追加されてる。非常にうれしい。

    ただ、

    from() で指定したエンティティに 1対多関連 を 結合 した場合、 getCount() が返す行数は getResultList() が返すエンティティの数よりも多くなる場合があります。

    http://s2container.seasar.org/2.4/ja/s2jdbc_manager_auto.html#%B8%A1%BA%F7%B7%EB%B2%CC%A4%CE%B9%D4%BF%F4%BC%E8%C6%C0

    というのはcount(distinct id)を使えば回避できるんではないかと思うた。OracleSQLServerは問題ないし、マニュアルを読む限りMySQLPostgreSQLDB2、H2、hsqldbもOKみたい。現状の仕様だと1対多関連の時はほとんど使い物にならないので、それだったらすべてのデータベースはサポートできなくともdistinct countを使うように変更した方がよいように思う。