[Seasar-user:3692] S2DAO でのfetchSize変更について

NISHIMURA Toshio [E-MAIL ADDRESS DELETED]
2006年 5月 26日 (金) 18:30:25 JST


西村と申します。

S2DAOで本番環境で使用するDBMSがPostgresql 7.3で実行 
時にエラーが発生します。

2006/05/26 16:53:05:525 JST [ERROR] MethodBindingImpl - Exception  
while invoking expression #{contentListInitAction.initialize}  
<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を渡すような仕様に修正していただけますか?
よろしくお願いします。





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