Bonjour,
La plus part des entités de mon mapping ont un attribut code plus que l'ID. Le code est unique et indexé. Sur la classe DAO maire de toutes les DAO de mes entités j'ai un findById() et un findByCode():
- findById(long id)
Le findById se base sur un get dans la session hibernate et l'object recupéré est donc dans le cache session.- findByCode(String code)
Le findByCode fait plutot une requete HQL et est donc exécuté en base à chaque fois, meme avec le meme code d'entity.
Ma question est quelle est la manière de faire pour que le findByCode se comporte de la meme manière que le findById? Sachant que j'ai utilisé le setCacheable(true) et m'aide pas pour l'instant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 final StringBuilder sb = new StringBuilder(); sb.append("from "); sb.append(entity.getName()); sb.append(" e where e.code = :code");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 List result = session.createQuery(sb.toString()) .setString("code", entityCode) .setCacheable(true).list(); return result;
Merci d'avance
Partager