-->
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.  [ 2 posts ] 
Author Message
 Post subject: @PreUpdate feuert bei Prüfung [solved]
PostPosted: Fri Apr 16, 2010 12:17 pm 
Beginner
Beginner

Joined: Sat Mar 27, 2010 11:03 am
Posts: 27
Location: Berlin
Hallo,

ich verwende die @PrePersist Callbackmethode beim speichern neuer Objekte und führe damit eine
Abfrage aus, welche überprüft ob das neue Objekt bestimmte UNIQUE-Constraints verletzt.
In diesem Fall werfe ich eine entsprechende Exception und kann eine Fehlermeldung generieren.

Nun möchte ich gerne das Gleiche auch beim aktualisieren von bestehenden Objekten tun, also mit
@PreUpdate. Leider tritt hier das folgende Problem auf:

Sobald ich die Abfrage ausführe bemerkt Hibernate anscheinend, dass das Objekt einen anderen
Zustand als in der DB besitzt und führt seinerseits ein Update aus, welches wiederum die @PreUpdate
Methode zur Ausführung bringt ... das führt natürlich ganz schnell zu einem Stackoverflow weil er nie fertig werden
kann.

Gibt es eine Möglichkeit dieses Problem ähnlich elegant wie mit @PrePersist und einer Abfrage zu lösen
ohne, dass die Sache in einen Teufelskreis mit Stackoverflow läuft ?

Moe


Last edited by moe5k on Fri Apr 16, 2010 2:00 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: @PreUpdate feuert bei Prüfung
PostPosted: Fri Apr 16, 2010 2:00 pm 
Beginner
Beginner

Joined: Sat Mar 27, 2010 11:03 am
Posts: 27
Location: Berlin
ich habe das Problem nun lösen können indem ich kurz vor der
Abfrage den FlushMode auf Commit setze und nach der Abfrage wieder zurück auf Auto.

Damit wird, soweit ich das verstanden habe, der Dirty-check von Hibernate kurzzeitig abgeschaltet,
so das ich die Abfrage ausführen kann ohne, das ein @PreUpdate-Event gefeuert wird.

Moe


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 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.