Możesz użyć java.sql.Array .
Jeśli chcesz uzyskać tylko tablicę liczb całkowitych, możesz spróbować w ten sposób (działa, jeśli wynik zawiera jeden wiersz):
String SQL = "select item_list from public.items where item_id=1";
Array l = template.queryForObject(SQL, Array.class);
List<Integer> list = Arrays.asList((Integer[]) l.getArray());
Lub użyj RowMappera
Foo foo = template.queryForObject(SQL, new RowMapper<Foo>(){
@Override
public Foo mapRow(ResultSet rs, int rowNum) throws SQLException {
Foo foo = new Foo();
foo.setName(rs.getString("name"));
foo.setIntegers(Arrays.asList((Integer[]) rs.getArray("item_list").getArray()));
return foo;
}
});
Klasa Foo:
class Foo {
private String name;
private List<Integer> integers;
public String getName() {
return name;
}
// ...
}