-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 
Author Message
 Post subject: Mise à jour conccurente
PostPosted: Fri Jul 09, 2010 5:17 am 
Newbie

Joined: Fri Jul 09, 2010 3:40 am
Posts: 2
Bonjour,

Je viens de récupérer une appli dont la couche de persistence est codée avec Hibernate. Lors de mise à jour conccurente, c'est le deuxième qui l'emporte !
Hors le souhait c'était de travailler en optimist lock : pour une même version de données (même timestamp) c'est celui qui fait la mise à jour en premier qui gagne (il a le même timestamp), le deuxième se retrouve avec un timestamp différent au niveau de la base (il a été mis à jour par le premier) donc sa mise à jour doit échouer.
Ma question est la suivante :
Y a t il un moyen avec Hibernate pour qu'il fasse la vérification de la version des données avant la mise à jour, via le timestamp ou faut il coder soit même une lecture avant la mise à jour de façon à vérifier soi même le timestamp ?

Merci d'avance pour vos réponses.


Top
 Profile  
 
 Post subject: Re: Mise à jour conccurente
PostPosted: Fri Jul 09, 2010 5:35 am 
Regular
Regular

Joined: Thu May 07, 2009 5:56 am
Posts: 94
Location: Toulouse, France
oui, et cela s'appelle "automatic versioning" avec mode optimistic [1]. hibernate vérifie lors de MAJ si un objet a été changé en bd et dans ce cas lève une exception pour avertir du changement concurrent. pour ce faire il faut ajouter un attribut dans ton modèle métier et l'annoter avec @Version (existe aussi en xml) [2]. la vérification se fait soit par incrémentation d'un compter (plus portable) soit par timestamp (peut-être c'est ton cas car tu utilise une bd existante je suppose).

[1] http://docs.jboss.org/hibernate/core/3. ... tic-manual
[2] http://docs.jboss.org/hibernate/core/3. ... on-version

_________________
everything should be made as simple as possible, but not simpler (AE)


Top
 Profile  
 
 Post subject: Re: Mise à jour conccurente
PostPosted: Fri Jul 09, 2010 5:51 am 
Newbie

Joined: Fri Jul 09, 2010 3:40 am
Posts: 2
Merci pour la réponse. Je vais faire quelques tests, en revenant de congé dans 2 semaines :-))

Ceci me conforte dans l'intérêt de Hibernate. Par contre, les personnes qui ont écrites le code que j'ai récupéré faisait une lecture avant la mise à jour (et en plus comparait mal le timestamp ce qui fait que celà ne marchait pas)

Je posterais mes conclusions après mes tests

A+


Top
 Profile  
 
 Post subject: Re: Mise à jour conccurente
PostPosted: Sat Jul 10, 2010 4:03 am 
Newbie

Joined: Sat Jul 10, 2010 3:32 am
Posts: 2
Y a t il un moyen avec Hibernate pour qu'il fasse la vérification de la version des données avant la mise à jour, via le timestamp ou faut il coder soit même une lecture avant la mise à jour de façon à vérifier soi même le timestamp ?

_________________
Chanel Handbags
Hermes Handbags


Top
 Profile  
 
 Post subject: Re: Mise à jour conccurente
PostPosted: Wed Jul 28, 2010 7:26 am 
Newbie

Joined: Wed Jul 28, 2010 7:19 am
Posts: 1
Hi,

Setting this option to 3 joins all four tables in one SQL statement and also loads all Bids.i like your post with "Setting this option to 3 will not, as you might have expected,

Wordpress Newsletter Plugin


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.