[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 メーリングリストの案内