2009-12-06 6 views
1

J'utilise l'objet SimpleJdbcDaoSupport pour accéder aux ressources DB. J'ai une requête qui est fréquemment exécutée contre la base de données pour localiser un enregistrement avec une clé spécifique. pour une raison quelconque, après avoir exécuté la même requête plusieurs fois, je commence à obtenir un résultat vide même si l'enregistrement existe dans la base de données.Spring JdbcTemplate renvoie un résultat vide lorsqu'il doit y avoir un résultat valide

Aucune idée de ce qui peut causer ce problème?

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

afficher le code ici – Bozho

+0

daoSupport.getJdbcTemplate(). Query (this.getConsumerTokenQueryStatement(), params, this.rowMapper); TokenServicesRowMapper de public static class implémente RowMapper {\t \t \t \t objet mapRow publique (ResultSet rs, int rowNum) throws SQLException { DefaultLobHandler lobHandler = new DefaultLobHandler(); return lobHandler.getBlobAsBytes (rs, 1); } } –

+0

Votre code est manquant les parties importantes - telles que ce que 'this.getComsumerQueryStatement()' renvoie, et ce qui est dans votre 'ResultSet'. – delfuego

Répondre

0

Si ce n'est pas lié à votre code une raison peut être le fait qu'une autre transaction fait quelque chose (comme une mise à jour) à la ligne que vous effectuez une recherche et en raison faire l'isolement entre les transactions que vous ne pouvez pas voir votre ligne. Une transaction peut changer mais ne pas encore valider votre ligne alors que l'autre est en train de la rechercher mais comme elle ne peut voir que les lignes validées, elle ne voit pas votre ligne.

Questions connexes