在批处理:chunk中,正在读取,处理(值操作和修改)记录集,然后写入XML。一旦块完成,它就会尝试将修改后的数据提交回数据库。但我不希望这种情况发生。有没有办法将事务设置为只读? 我试图使读取方法只读,但它没有用。我在默认情况下读取了一个块完成后的事务提交。 batch:在批处理中定义的事务属性:tasklet仅接受传播,超时,隔离级别值。但不是只读.. 请建议。
<batch:job id="job1">
<batch:step id="step1">
<batch:tasklet>
<batch:chunk reader="itemReader" writer="itemWriter" processor="itemProcessor"
commit-interval="500">
</batch:chunk>
</batch:tasklet>
</batch:step>
<batch:listeners>
<batch:listener ref="jobListener" />
</batch:listeners>
</batch:job>
Itemreader:
public class XReader implements ItemReader {
@Autowired
private XRepository classDao;
private List lst = new ArrayList();
private int index= 0;
public Object read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException {
if (lst.isEmpty()) {
lst = classDao.findAll();
}
if (index < lst.size()) {
return lst.get(index++);
} else return null;
}
}