-->
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: Inserten eine Sets
PostPosted: Tue Feb 05, 2008 4:28 pm 
Newbie

Joined: Tue May 29, 2007 2:50 am
Posts: 12
Hallo zusammen

Ich habe ein Problem beim speichern eines Objekts A, das wiederum ein set von anderen Objekten B enthält. Das Lesen klappt problemlos, ich lese also Objekt A und kriege auf einen Schlag zugleich alle dazugehörigen Objekte B.

Die selbe Idee hatte ich beim Speichern von Objkekt A. Ich füllte das set mit Objekten B ab und rief die Methode save auf. Nun kommt folgende Fehlermeldung:
Quote:
Cannot insert the value NULL into column 'fremdKey', table 'TabelleB'; column does not allow nulls. INSERT fails.


fremdKey ist die Id welche auch beim Mappen des Sets als Schlüssel angegeben wird und wodurch beim Lesen die Objekte B bestimmt werden. Beim Speichern sollte dieser Wert ja automatisch gefüllt werden.

So habe ich das Set gemappt?
<set name="buecher" cascade="all" lazy="false" oder-by="titel asc">
<key column="fremdKey" />
<one-to-many class="test.Seite" />
</set>

Würde mich über Lösungen und Tipps freuen! Danke!


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 05, 2008 6:12 pm 
Newbie

Joined: Fri Nov 30, 2007 7:44 am
Posts: 7
Also
1) möglichkeit zuerst nur object A speichern damit der PK von der DB vergeben wird, dann dei B objekte in das set von A ein fühgen und SaveOrUpdate für A machen.

2) mit der reihen folge in dem mapping file spielen.
Objekt A und B in einem mapping file beschreiben und zwar so das A vor B steht.

_________________
Kind regards
Uwe Lesta


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 06, 2008 2:30 am 
Newbie

Joined: Tue May 29, 2007 2:50 am
Posts: 12
Vielen Dank Lesta für die Tipps.

1. Ich habe das falsch gepostet, es handelt sich um ein Update der auf das Objekt A ausgeführt wird, der PK ist also bereits vor dem Speichern vergeben.

2. A steht bereits vor B, denke jedoch das Hibernate so intelligent ist und dies erkennen würde.

Hat noch jemand irgendeine Idee woran es liegen könnte?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Feb 08, 2008 5:09 am 
Newbie

Joined: Thu Feb 07, 2008 12:38 pm
Posts: 4
Location: Franconia/Germany
Hallo,
überprüfe eventuell mal, wie der Schlüssel Deiner B-Tabelle generiert
wird und ob überhaupt (Sequence,...). Welche Methode hast Du denn
dafür eingestellt?

_________________
Micha
Member of a friendly software team


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 19, 2008 11:52 am 
Newbie

Joined: Tue May 29, 2007 2:50 am
Posts: 12
Danke! Ich verwende native:

Code:
      
<id name="id" column="MailData_ID">
   <generator class="native" />         
</id>



In der MSSQL-DB wird der Schlüssel zudem automatisch generiert (autoincrement).

Sollte das so passen oder liegt hier vielleicht der Fehler? Kenne micht mit den Generatoren nicht aus, würde micht darum über eure Hilfe freuen.

Gruss


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 21, 2008 5:37 pm 
Newbie

Joined: Fri Nov 30, 2007 7:44 am
Posts: 7
Das mit "native" sollte passen wenn MYSQL autoincrement auf der ID macht.

Poste doch mal dein ganzes mapping file.
und das stück code in dem du die objekte füllst und ( probierst zu ) speichern.

_________________
Kind regards
Uwe Lesta


Top
 Profile  
 
 Post subject:
PostPosted: Sun Feb 24, 2008 7:16 am 
Expert
Expert

Joined: Thu Jul 05, 2007 9:38 am
Posts: 287
Hast du du Cascade.Save bei dem Mapping in dem Mapping der Relation zwischen A und B definiert?

_________________
Please rate useful posts.


Schauderhaft: Softwaredevelopment, Projectmanagement, Qualitymanagement and all things "schauderhaft"


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.