Spring JdbcTemplate возвращает пустой результат, когда должен быть допустимый результат - PullRequest
1 голос
/ 06 декабря 2009

Я использую объект SimpleJdbcDaoSupport для доступа к ресурсам БД. У меня есть запрос, который часто выполняется к базе данных, чтобы найти запись с определенным ключом. по какой-то причине после выполнения одного и того же запроса несколько раз я начинаю получать пустой результат, хотя запись существует в базе данных.

Есть идеи, что может вызвать такое поведение?

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); 
   } 
}

1 Ответ

1 голос
/ 17 августа 2011

Если это не связано с вашим кодом, одной из причин может быть тот факт, что другая транзакция делает что-то (например, обновление) для строки, которую вы ищете, и из-за этого происходит изоляция между транзакциями, которые вы не видите своей строкой. Одна транзакция может изменить, но еще не зафиксировать вашу строку, в то время как другая ищет ее, но, поскольку она может видеть только зафиксированные строки, она не видит вашу строку.

...