J'aurais besoin de la communauté pour m'aider à résoudre un problème.
J'ai deux méthodes dans ma couche Dao qui doivent me retourner des données or leur fonctionnement est quasi identique sauf que l'une d'elle effectue des restrictions supplémentaire sur des sous-objets
Le problème c'est qu'hibernate dans tous les cas garde en cache le résultat d'une pour me renvoyer ce même résultat sous l'autre (même si l'exécution de la requête est différente). Or ce n'est pas possible ! puisque les requêtes SQL exécutées par hibernate correspondent à ce que j'attend.
En gros le coeur d'hibernate me renvoie ce qu'il a en cache au lieu de me retourner les valeurs de la requête
Le criteria de la première méthode
Le criteria de la seconde méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Criteria criteria = getSession().createCriteria(FamilleRisque.class); criteria.add(Restrictions.idEq(id)); criteria.createCriteria("questions").add( Restrictions.or(Restrictions.isNull(dateFin), Restrictions.and( Restrictions.ge(dateDebut, dateEvrp), Restrictions.le(dateFin, dateEvrp)))) .createCriteria(metiers) .add(Restrictions.eq("metier", codeMetier));
Pouvez-vous m'aider car je pense que c'est un problème de cache d'hibernate au niveau de l'exécution des requêtes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Criteria criteria = getSession().createCriteria(FamilleRisque.class); criteria .add(Restrictions.idEq(idFamillerisque));
Partager