2016-03-18 60 views
0

我正在嘗試使用別名命名的表上選擇語句。當我檢索結果集時,別名似乎不適用於it.item_id。它適用於item_id。任何想法,我哪裏錯了?無法獲取使用spring jdbcTemplate的表別名工作

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

在結果集中別名不可用,所以它不起作用。

你可以改變你的SQL查詢如SELECT it.item_id AS some_item_id * FROM some_item_table AS it然後你可以做rs.getInt("some_item_id")

在您的查詢中,您並不需要別名,因爲您只有一個表。

+0

我相信'SELECT it.item_id AS some_item_id *'中的'*'是選擇所有列並使用'some_item_id'別名?我使用sybase作爲基礎數據庫。雖然它識別出'SELECT it.item_id AS some_item_id',但它似乎不識別'*' – tintin