Je résous un bogue dans notre application d'entreprise. L'application peut être connectée à Oracle, sqlServer et mysql. quand je me connecte à Oracle, je supprime toutes les données de certaines tables dans Oracle, je peux toujours interroger les données des tables Throse dans Oracle. Tout d'abord, je pensais que c'est à cause du cache Hibernate, mais quand je me connecte à sqlserver ou mysql faire la même chose, j'ai trouvé les données ont été supprimées.J'ai eu affaire avec le problème pour toute la journée.il est vraiment difficile pour moi et je dois résoudre le problème dans les deux prochains jours, si quelqu'un peut m'aider, je le ferai Merci beaucoup!cache oracle et hibernate
Voici quelques images et codes: ce sont les codes que j'utilise pour interroger les données de la base de données.
long num = dataService.getAllSum(bean.getDbName(), bean.getTableName());
bean.setIsTableExist(true);
bean.setHasData(num > 0 ? true : false);
ici est sourcecode de la fonction "getAllSum":
@Override
public Long getAllSum(String dbName, String tableName) {
return (long) this.getJdbcTemplate(dbName).queryForInt("select count(ID) from " + tableName);
}
quand je suis en utilisant SQLServer, je supprime toutes les données de la table "NQ_AbbrNMChange", quand je debuged ici, le num est 0, c'est exact. Mais quand j'ai utilisé Oracle, faire la même chose, le résultat est faux, le num n'est pas 0, il semble que les données n'ont pas été supprimées, mais j'ai trouvé qu'il était vraiment supprimé dans l'oracle.
vous vous connectez à la mauvaise instance de base de données peut-être? – sstan
Dans les transactions oracle doivent être commis manuellement. Avez-vous vérifié que vous avez validé la transction dans laquelle vous avez effectué la suppression? – steelshark
Afficher votre code de suppression. [Comment créer un exemple minimal, complet et vérifiable] (http://stackoverflow.com/help/mcve) –