2010-09-21 6 views
0

De temps en temps j'ai besoin de nettoyer la session Hibernate. Comment éviter LazyInitializationException avec les obects qui sont attachés à cette session?Comment détacher tous les objets de la session Hibernate

Je cherche quelque chose comme session.detachAllObjects(). puis appelez session.clear()

Après cela, je suppose que ces objets seront récupérés à partir de DB.

Répondre

6

session.clear() détache tous les objets.

LazyInitializationException signifie généralement que les entités sont détachées d'une session ou qu'une session est fermée. Si vous souhaitez l'éviter, attachez un objet à une session (en utilisant session.merge(..)) ou ne le fermez pas (en utilisant OpenSessionInView)

+0

Y at-il un moyen de détacher un objet et lorsque j'essaie de naviguer dans une collection enfant paresseuse i devrait obtenir NullPointerException au lieu de LazyInitializationException? –

+0

non, c'est MENSONGE toujours. – Bozho

+0

Donc, pour exposer le service Web, nous ne pouvons pas utiliser Hibernate du tout? Parce que si je détache l'Entité, elle lancera LIE, si elle est attachée à la Session, elle tirera tout le graphe d'Objet qui n'est pas souhaitable. –

Questions connexes