[Seasar-user:15045] Re: 【S2JDBC】イテレーションによる検索時のエラー

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2008年 7月 16日 (水) 15:30:40 JST


お世話になります。mackeyです。

ひが様、お返事ありがとうございます。

Entity及びソースを送ります。
データ件数は45万件でa1〜a4までを指定すると正常に動きます。
しかし、下記のようにa1〜a10まで指定するとエラーが出力されず
処理が終了してしまいます。

宜しくお願いします。

Entity定義***********************************************************
@Entity
public class Temp {

	@Id
	public Integer a1;
	public Integer a2;
	public String a3;
	public Integer a4;
	public Integer a5;
	public Integer a6;
	public BigDecimal a7;
	public BigDecimal a8;
	public Timestamp a9;
	public Timestamp a10;

}

イテレーションによる検索を使っているソース**************************
@Binding("mysqlJdbcManager")
public JdbcManager mysqlJdbcManager;
private static final String SELECT_TEMP_DTO = "select a1,a2,a3,a4,a5,a6,a7,a8,a9,a10"
	+ " from temp where a3<>?";
public void main_proc() throws Exception {

	try {
		long sum = mysqlJdbcManager.selectBySql(Temp.class,
				SELECT_TEMP_DTO, "9999").iterate(
				new IterationCallback<Temp, Long>() {
					private long sum;

					public Long iterate(Temp emp,
							IterationContext context) {
						sum++;
						return sum;
					}
				});
		logger.info(sum);
	} catch (Exception e) {
		logger.info(e.getMessage());
	}
}

>ひがです。
>
>> お世話になります。
>> mackeyです。
>> 
>> S2JDBCの”イテレーションによる検索”を使用して
>> 1行ずつ処理を実行させようとしています。
>> データ件数が増えるとループの処理が実行されず
>> 処理が終了してしまいます。
>> Out of Memoryかと思うのですが”イテレーションによる検索”は
>> 1行ずつメモリに読むのですよね?
>> 何か設定を変更する必要があるのでしょうか?
>> 
>> Seasar2.4.26
>> MySQL v5
>> 
>何か設定が必要になることはありません。
>
>これだけだと良くわからないので、使っているエンティティの
>定義(ソース)やイテレーションによる検索を使っているソースを
>見せていただけないでしょうか。
>
>よろしくお願いします。


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