S2DAOで本番環境で使用するDBMSがPostgresql 7.3で実行
時にエラーが発生します。
2006/05/26 16:53:05:525 JST [ERROR] MethodBindingImpl - Exception
while invoking expression #
<org.seasar.framework.exception.SQLRuntimeException: [ESSR0071]
SQLで例外(ErrorCode=0, SQLState=null)が発生しました。理由は
This method is not yet
implemented.>org.seasar.framework.exception.SQLRuntimeException:
[ESSR0071]SQLで例外(ErrorCode=0, SQLState=null)が発生しま
した>。理由はThis method is not yet implemented.
at org.seasar.framework.util.StatementUtil.setFetchSize
(StatementUtil.java:36)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.prepareStatement
(BasicSelectHandler.java:150)
at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute
(BasicSelectHandler.java:135)
at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute
(BasicSelectHandler.java:122)
at org.seasar.dao.impl.SelectDynamicCommand.execute
(SelectDynamicCommand.java:55)
...
Caused by: This method is not yet implemented.
at org.postgresql.Driver.notImplemented(Driver.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setFetchSize
(AbstractJdbc2Statement.java:183)
at org.seasar.framework.util.StatementUtil.setFetchSize
(StatementUtil.java:34)
Postgresql 7.3のJDBCはsetFetchSizeが実装されていない
のでエラーが起きています。
S2ではfetchSizeが-1より大きい場合setFetchSize
を呼んでいます。S2だと
org.seasar.extension.jdbc.impl.BasicSelectHandlerのプロパティと
して渡せるのですが、
S2DAOはSelectDynamicCommand.executeにてfetchSizeを渡
すようになっていません。つまり常にfetchSizeはデフォルト値
100を設定しています。
JDBCドライバーのバグ回避が目的で調査していたのですが、検索結果が
100件を超えるような場合まずくないでしょうか?
S2DAOでもfetchSizeを変更できるようにするか、
fetchSize=-1を渡すような仕様に修正していただけますか?
よろしくお願いします。