[DAO-2] [Seasar-user:3692] S2DAO でのfetchSize変更について Created: 2006-05-31  Updated: 2006-06-13  Resolved: 2006-06-13

Status: Resolved
Project: S2Dao
Component/s: s2dao
Affects Version/s: 1.0.34
Fix Version/s: 1.0.35

Type: Bug Priority: Major
Reporter: manhole Assignee: manhole
Resolution: Fixed Votes: 0
Labels: None
Environment:

Postgresql 7.3



 Description   

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を渡すような仕様に修正していただけますか?
よろしくお願いします。



 Comments   
Comment by manhole [ 2006-06-13 ]

fetchSizeを設定可能にするクラスを、Seasar2本体へ入れることにしました。
また、S2Dao側ではBasicSelectHandler#setFetchSize(-1)をするようにしました。

  • 次バージョンのSeasar2(2.3.11 ?)では、j2ee.diconでfetchSizeを設定可能になる
  • 次バージョンのS2Dao(1.0.35)では、SelectDynamicCommandでBasicSelectHandler#setFetchSize(-1)することでfetchSizeを変更しない

という対応になります。

Generated at Tue Apr 15 17:31:16 JST 2025 using Jira 10.5.0#10050000-sha1:9d9d098bb7b67e8dba8da380ba9c3900d82ac3cf.