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 ? :)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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)
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)
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)
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.
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.
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.