Bonjour,
L'intitulé étant plutôt étrange je vais essayer d'être clair dans mes explications...
J'ai un problème récurrent lorsque je réalise mes Tests junit avec la visibilité des données entre les requêtes HQL et les requêtes SQL au sein d'une même transaction.
J'ai un enchainement de requêtes HQL et SQL qui fonctionne lors de la création :
1/ création des objets et sous objets
2/ sauvegarde (via hibernate)
3/ lecture (à ce niveau hibernate via find et SQL via select me renvoient bien les données attendues)
4/ ajout d'autres objets à partir des données obtenues en "3"
5/ contrôle (ici tout est ok)
6/ modification des objets/sous-objets
7/ sauvegarde
8/ purge des données ajoutées en "4"
9/ lecture (à ce niveau SQL via select ne me renvoie pas les données)
10/ ajout d'autres objets à partir des données obtenues en "9"
11/ contrôle (ici tout est ko = vide puisque "9" n'a rien trouvé)
La sauvegarde est la même fonction dans les 2 cas.
Tout ce passe dans la même transaction (je fais un rollback en fin de test)
Pour info, l'étape "3"/"9" est un SELECT sur des tables différentes de la table dans laquelle les données "4"/"10" sont ajoutées.
Cependant, la requête Oracle est assez complexe et je n'ai pas pu la passer en HQL (elle contient un SELECT FROM ALL_OBJECTS afin de générer une liste de dates utilisée comme jointure afin de générer mes données.
Mes multiples recherches sur le net m'amènent à penser que le pb serait lié au cache de premier niveau d'hibernate...
Merci d'avance,
devyan.
Partager