Bonjour,
Parceque je n'arrive pas à faire fonctionner un mapping avec HIbernate (http://www.developpez.net/forums/sho...d.php?t=553582) et qu'il faut avancer, j'ai décidé de passer à SImpleJdbcTemplate.
J'ai donc crée mes deux mappers : 'RoleMapper' et 'ResourceMapper'.
'Role' était très simple à mapper car ne possède que trois attributs simples. 'Resource' suand à lui possède un Set de 'Roles'.
Je vois donc plusieurs façons de récupérer un 'Resource' complet :
a) Obtenir toues les informations en une requête et, dans le 'ResourceMapper' faire une soorte de boucle de rupture sur le ResultSet en appelant 'RoleMapper' pour charger le Set.
Mais le problème est que les noms/index de colonnes changent lorsque je veux charger juste un 'Role' ou lorsqu'il sont chargés pour remplir un 'Resource' (SELECT resources.name, roles.name as r_name..)
b) Obtenir la 'Resource' avec une requête et réexécuter une sous requête pour charger les 'Roles'.
Mais celà me feras exécuter deux requêtes pour de sinfos récupérables en une seule.
c) Obtenir toutes les informations en une requête et écrire un 'ResourceMapper' qui se chargerais luyi même de mapper les 'Roles'.
Mais cela multiplie mon code.
Bien que la dernière solution ne soit pas superbe à cause du dédoublement de code, les trois sont valables (si j'utilise la solution 'a', je peux prendre une convention pour nommer les champs de résultats) mais je me demande laquelle serait les plus pratique/simple/optimisée.
Je pense que la 'a' est la plus optimisée car une seule requête, que la 'b' est la plus pratique car pas convention de nommage et, enfin, que la 'c' est la plus simple car pas de prises de têtes.
Et vous, comment faites-vous ou comment ferriez-vous ?
Merci
Partager