Let's consider a stored procedure named FOO that return a List. We can call it via JdbcTemplate as follows:
@Service
public class FooService {
private final JdbcTemplate jdbcTemplate;
public FooService(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public List callFOO() {
SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate)
.withProcedureName("FOO")
.returningResultSet("FooResultSet",
BeanPropertyRowMapper.newInstance(FooDto.class));
Map foos = simpleJdbcCall.execute(...);
return (List) authors.get("FooResultSet");
}
}