2010-10-26 3 views

Répondre

5

Lorsque vous devez conserver un objet "vivant" entre des sessions distinctes d'hibernation. Exemple: dans les applications Web, si vous utilisez le modèle session par requête et que vous devez conserver la même entité mise en veille prolongée sur plusieurs pages.

S'il vous plaît jeter un oeil à la documentation Hibernate:

Chapter 10: Working with objects

Chapter 11: Transactions and Concurrency

1

Supposons que vous devez exécuter aa transaction longue (temps en prenant l'entrée d'utilisateur) ainsi que les objets à être utilisé en tant que élément de couche de présentation. Maintenant, votre objet doit jouer un double rôle. 1. En tant qu'objet détaché (à utiliser en tant qu'objet de couche de présentation) 2. Objet recollé (Pour terminer la transaction) Comment est-ce possible? Interrompez la transaction dans deux transactions. Dès que la transaction interne sera terminée, Object sera détaché et pourra fonctionner dans la couche de présentation. Dès la fin du travail de présentation, il entrera dans une autre transaction et fonctionnera comme un objet attaché.

Donc tout cela est possible grâce à l'objet attaché.

1

Lorsque de longues transactions doivent être traitées, il est logique de diviser la longue transaction en deux transactions ou plus. Les objets détachés peuvent être utilisés pour porter les informations jusqu'à la couche d'interface utilisateur et peuvent être rattachés à une nouvelle transaction à l'aide d'une autre session. D'autre part, il n'est pas très conseillé d'utiliser des objets détachés dans de tels scénarios, mais les objets DTO (Data Transfer Objects) peuvent assez bien servir ici.

Questions connexes