spring batch:make transaction只读

时间:2016-01-07 10:39:17

标签: spring-batch

在批处理: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;

}
}

0 个答案:

没有答案