OVH Cloud OVH Cloud

Hibernate / Swing / Sessions

2 réponses
Avatar
Simon OUALID
Bonjour à tous,

Je suis en train de monter une IHM swing sur un projet avec des DAO qui
tournent sous hibernate (que je récupère comme module). Quand je les
exploitent client-side, j'ai des exceptions qui sautent sur le lazy
loading de certaines parties des objets métiers :

LazyInitializationException: Session has been closed

J'ai lu cet article : http://www.hibernate.org/43.html (plutôt orienté
web) et essayé différentes bidouilles, mais rien qui ne me convienne
vraiment.

Si quelqu'un a déja callé la dessus, ça serait sympa de me filer un coup
de main... La question est : comment lazy loader une partie des objets
métiers avec spring et hibernate dans une application cliente ? :)

Symon

2 réponses

Avatar
Lionel
Simon OUALID wrote:
La question est : comment lazy loader une partie des
objets métiers avec spring et hibernate dans une application cliente


Normalement cela devrait etre plus simple qu'en web ou la session est en
général fermée à chaque request.
Pourquoi ne pas utiliser une seule session entre l'ouverte et la fermeture
de l'appli et faire des flush au bon moment ?
Sinon tu peux rattacher tes objets à une session ouverte si la session qui
t'a permis de charger tes objets a été fermée avec un Session.lock(monObjet,
LockMode.NONE)

Avatar
Simon OUALID
Lionel wrote:

Normalement cela devrait etre plus simple qu'en web ou la session est en
général fermée à chaque request.
Pourquoi ne pas utiliser une seule session entre l'ouverte et la fermeture
de l'appli et faire des flush au bon moment ?
Sinon tu peux rattacher tes objets à une session ouverte si la session qui
t'a permis de charger tes objets a été fermée avec un Session.lock(monObjet,
LockMode.NONE)




Merci pour votre réponse, ça marche effectivement en ne gardant qu'une
session. Par contre, il me reste encore à résoudre le problème du cache
à résoudre, dans la mesure ou je peux avoir plusieurs clients.