无法使用spring jdbcTemplate获取表别名

时间:2016-03-18 11:01:42

标签: spring spring-jdbc

我正在尝试使用别名的表上的select语句。当我检索结果集时,别名似乎不适用于it.item_id。它适用于item_id。知道我哪里错了吗?

getJdbcTemplate().query((connection) -> {
            PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM some_item_table AS it WHERE it.item_id = ?");
            preparedStatement.setString(1, 123);
            return preparedStatement;
        }, (rs, i) -> product()
                .setId(rs.getInt("it.item_id"))// NOT WORKING
                //.setId(rs.getInt("item_id")) THIS WORKS!
                ...
                );

1 个答案:

答案 0 :(得分:1)

在结果集中,别名不可用,因此不起作用。

您可以更改SELECT it.item_id AS some_item_id * FROM some_item_table AS it之类的SQL查询,然后执行rs.getInt("some_item_id")

在您的查询中,您实际上不需要别名,因为您只有一个表。