Bonjour,
J'ai commencé à faire des mappings de collection sur mes entités hibernate pour mon application JSF icefaces.
J'utilise des DAO basées sur hibernateTemplate fourni par Spring.
Si je prends un exemple tout simple :
Une entité Group qui a plusieurs entités User.
j'ai pour cela une propriété Set<User> dans le groupe, du tout simple.
Une fois dans le managed bean, je ne peux plus utiliser la méthode group.getUsers(), ok c'est normal car la session est fermée. Je peux cependant utiliser le filter openSessionInView jusque là ok.
Maintenant mon problème est que j'aurai besoin de stocker le Group en session pour pouvoir éditer ses utilisateurs et ses autres relations par le biais d'un formulaire étalé sur plusieurs pages. Le problème c'est que si le chargement du Group a été fait dans Step1.jsf, puis que l'accès a getUsers() se fait dans Step2.jsf ça explose car la session hibernate s'est terminée quand Step1 a été rendue...
Donc en gros...
-Est-ce mauvaise pratique que d'utiliser ses objets hibernate directement dans la vue JSF (liaison aux datatable et ça)?
-Est-il incorrect de laisser un objet hibernate *survivre* entre les requêtes?
-A-t-on pas intérêt à ne pas mapper les collections mais à tout gérer au niveau service avec des méthodes tels que :
List<Users> GroupService.getUsersOfGroup( int idGroup, );
GroupService.setUsersOfGroup( int idGroup, List<Users> ); ?
Partager