2013-07-11 2 views
0

J'ai une application Hibernate que nous essayons d'implémenter Open Session in View Pattern avec ZK J'ai une question Hibernate crée une session par thread et la ferme mais nous avons plusieurs opérations avec les méthodes [criteria et save ou update] en une session que nous avons commencé à implémenter en utilisant méthode de mise à jour nous très rapidement reçu le tristement célèbreJava Hibernate Session dans View Merge perd les modifications?

NONUNIQUEOBJECTEXCEPTION 

nous avons changé update()-merge() ma question si ce qui suit.

si j'ai une classe Student et essayer de mettre à jour le l'étudiant en utilisant update[making sure is not in session avoid the exception] mais plus tard dans une autre méthode l'étudiant doit à nouveau mis à jour différemment de la précédente update cette fois, nous devrions méthode merging et merge() est appelée. Je me demandais quand [flush][commit] méthode est appelée les changements au premier étudiant est la perte? les changements aux deux étudiants est OK? ce qui se produit??

Je crains que les changements dans le premier student est une perte! que puis-je faire dans ce cas?

merci beaucoup un très cordialement.

Répondre

0

vous devriez jeter un oeil à l'algorithme de verrouillage. Il y en a 2 populaires: optimistes et pessimistes. Pour l'application Web, le verrouillage optimiste fonctionne généralement mieux. Longue histoire courte chaque révision de l'objet entité reçoit une étiquette de version (souvent une colonne bigint ou string db). Lorsque quelqu'un préemptera votre mise à jour et que votre version est obsolète, Hibernate jettera une exception de verrouillage optimiste, auquel cas vous pourrez capturer et demander à l'utilisateur quoi faire (ou prendre d'autres mesures appropriées)

+0

Merci pour le conseil gerrytan signifie-t-il? – javiut

+0

Supposons que 2 personnes récupèrent un objet entité de la même version mais que l'une enregistre ses modifications avant l'autre, que cette personne a préempté l'autre. C'est là que les techniques de verrouillage sont utiles – gerrytan

Questions connexes