我是春季新手。我需要在春季批处理中完成的任务如下:
我的查询如下:
一种。对于第一个要求,我需要将整个结果集映射到一个对象,其中与Person相关的数据在一个表中,与Pets相关的数据在另一个表中,并通过person id联接。
public class PersonPetDetails {
private String personName;
private String personAddr;
private int personAge;
private List<Pet> pets;
Run Code Online (Sandbox Code Playgroud)
为此,我编写了一个自定义项目读取器,该读取器扩展了JdbcCursorItemReader。
public class CustomJDBCCusrorItemReader<T> extends JdbcCursorItemReader<T> {
private ResultSetExtractor<T> resultSetExtractor;
public void setResultSetExtractor(ResultSetExtractor<T> resultSetExtractor) {
this.resultSetExtractor = resultSetExtractor;
}
@Override
public void afterPropertiesSet() throws Exception {
setVerifyCursorPosition(false);
Assert.notNull(getDataSource(), "DataSource must be provided");
Assert.notNull(getSql(), "The SQL query must be provided");
Assert.notNull(resultSetExtractor, "ResultSetExtractor must be provided");
}
@Override
protected T readCursor(ResultSet rs, int currentRow) throws SQLException {
return resultSetExtractor.extractData(rs); …
Run Code Online (Sandbox Code Playgroud)