2009-12-06 137 views
1

我使用SimpleJdbcDaoSupport對象來訪問數據庫資源。我有一個針對數據庫經常執行的查詢來查找具有特定鍵的記錄。出於某種原因,多次執行相同的查詢之後,即使記錄存在於數據庫中,我也開始得到一個空的結果。當應該有一個有效的結果時,Spring JdbcTemplate返回空結果

任何想法可能導致此行爲?

daoSupport.getJdbcTemplate().query(this.getConsumerTokenQueryStatement(),params, this.rowMapper); 
public static class TokenServicesRowMapper implements RowMapper { 
    public Object mapRow(ResultSet rs, int rowNum) throws SQLException { 
    DefaultLobHandler lobHandler = new DefaultLobHandler(); 
    return lobHandler.getBlobAsBytes(rs, 1); 
    } 
} 
+0

在此處顯示代碼 – Bozho 2009-12-06 08:40:48

+0

daoSupport.getJdbcTemplate()。query(this.getConsumerTokenQueryStatement(),params,this.rowMapper); 公共靜態類TokenServicesRowMapper實現的RowMapper {\t \t \t \t 公共對象mapRow(結果集RS,INT的rowNum)拋出的SQLException { DefaultLobHandler LobHandler接口=新DefaultLobHandler(); return lobHandler.getBlobAsBytes(rs,1); } } – 2009-12-06 09:52:41

+0

您的代碼缺少重要的部分 - 比如'this.getComsumerQueryStatement()'返回什麼,以及ResultSet中的內容。 – delfuego 2009-12-09 19:34:31

回答

0

如果這是不相關的代碼,其中一個原因可能是事實,另一個事務在做一些事情(如更新),爲您搜索的行,因爲做交易,你不能看到你的行之間的隔離。一個事務可以改變,但不能提交你的行,同時另一個事務正在搜索它,但因爲它只能看到提交的行,所以它沒有看到你的行。