-->
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.  [ 7 posts ] 
Author Message
 Post subject: "saveOrUpdateCopy()" vs "saveOrUpdate()"
PostPosted: Wed Sep 07, 2005 3:53 am 
Newbie

Joined: Tue Sep 06, 2005 11:11 am
Posts: 11
Location: Germany
Hallo,

kann mir jemand den Unterschied, bzw. die Arbeitsweise, der beiden Methoden "saveOrUpdateCopy()" und "saveOrUpdate()" so erklären, dass ein Java/OO Anfänger es verstehen kann? Die Beschreibung der Methoden habe ich schon gelesen, so richtig weitergeholfen hat das aber nicht.

Danke
Richard


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 07, 2005 4:38 am 
Regular
Regular

Joined: Mon Oct 06, 2003 7:17 am
Posts: 58
Location: Switzerland
Mit der saveOrUpdate() Methode wird eine Instanz zu der Session hinzugefügt und abgespeichert (falls es noch nicht in der DB existiert) oder aktualisiert. Falls diese Instanz bereits in der Session vorhanden ist, wird eine Exception geworfen. Mit der saveOrUpdateCopy() Methode wird keine Exception geworfen wenn du die gleiche Instanz noch einmal zur Session hinzufügen willst. Es werden lediglich alle Attribute zu der bereits existierenden Instanz in der Session kopiert.

Reto


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 07, 2005 5:20 am 
Newbie

Joined: Tue Sep 06, 2005 11:11 am
Posts: 11
Location: Germany
Hi Reto,

danke, das war schon eher verständlich.

Somit sollten die beiden Methoden eigentlich gleich funktionieren, wenn das als Parameter übergebene Ojekt jeweils mit "new" neu instanziiert wurde?


Danke
Richard


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 07, 2005 5:36 am 
Regular
Regular

Joined: Mon Oct 06, 2003 7:17 am
Posts: 58
Location: Switzerland
richtig


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 07, 2005 7:59 am 
Newbie

Joined: Tue Sep 06, 2005 11:11 am
Posts: 11
Location: Germany
Hmmm... schon mal gut das das so ist.

Ich habe hier folgendes Problem:
"saveOrUpdateCopy(valueVO)" erzeugt eine "ConstraintViolationException" während "saveOrUpdate(valueVO)" fehlerfrei durchläuft und auch macht, was es soll.

Es soll eine Update auf eine Tabelle gemacht werden, die etwa so aussieht:

ListID UniqueKey 1
ListName UniqueKey 2
IX

In unsrem Fall soll eine Menüstruktur dargestellt werden

z.B.:

ListID: Automarke
Listname: VW IX:1
Listname: Opel IX:2
Listname: Ford IX:3 usw.

IX ist dann die Stelle an der der Eintrag im Menü steht.

Nun soll upedatetd werden, wenn z.B. Opel mit VW die Stelle tauschen soll, also Opel soll an Stelle 1 im Menü stehen VW an Stelle 2.

Ich denke der Fehler kommt daher, dass evtl. beim Einfügen von Automarke:Opel an erster Stelle ein "duplicateValue" auftritt, weil an zweiter Stelle "Automarke:Opel" noch steht, weil es noch nicht durch VW ersetzt ist.

Aber warum kann "saveOrUpdate()" das?? Löscht vielleicht "saveOrUpdate()" den ganzen Record, bevor das ValueObject persistiert wird?

Danke
Richard


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 07, 2005 5:03 pm 
Regular
Regular

Joined: Mon Oct 06, 2003 7:17 am
Posts: 58
Location: Switzerland
Ich denke nicht dass es etwas mit der saveOrUpdateCopy Methode zu tun hat. Um das Problem zu lösen musst du die Mapping Datei und deinen Sourcecode posten.

P.S. Warum speicherst du die Menüstruktur nicht als Liste ab wie sie auch dargestellt wird? Dann musst du nicht um den Index kümmern.

Reto


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 08, 2005 6:58 am 
Newbie

Joined: Tue Sep 06, 2005 11:11 am
Posts: 11
Location: Germany
Vielen Dank erst mal für die Info!

Nun, ich bin relativ neu im Java/OO Umfeld. Das Problem tritt in einem größeren, betehenden Projekt auf. Da ist ebern erst mal alles wie es ist, an der Architektur kann ich ohne Weiteres nichts ändern. Ich finde die Tabelle für diesen Zweck allerdings auch etwas merkwürdig!

Den Sourcecode so zu posten, dass man erkennen kann worum es geht, ist relativ aufwändig. An der konkreten Stelle im Code ist halt nur der Aufruf der Methode, mit Übergabe eines ValueObjektes als Paramter. Alles andere verteilt sich "weiträumig". Das krieg ich nicht zusammen!


Viele Grüße
Richard


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