-->
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.  [ 1 post ] 
Author Message
 Post subject: Probleme mit referenzieller Integrität
PostPosted: Mon Jul 13, 2009 11:16 am 
Newbie

Joined: Mon Jul 13, 2009 8:09 am
Posts: 1
Hi,

Ich hoffe, es gibt einen Experten, der mir bei dem folgenden Problem helfen kann! :)

Ich habe 2 Domain Objekte, die ich mit Hibernate speichern möchte. Das eine ist ein Produkt, das andere eine Translation des Namens (mehrere Übersetzungen und Zusatzinformationen, daher als eigene Domain Klasse und nicht bspw. als String oder Map definiert)

Also hat das Produkt einen Namen - in der Datenbank ganz einfach über die name_id, in der Klasse über ein Objekt name vom Typ Translation referenziert. Soweit nicht sonderlich schwierig.

Jetzt verwende ich allerdings ein Messaging System, bei dem die Translations unabhängig von den Produkten geschickt werden können und mit meinem System synchronisiert werden müssen. Wenn der Name zuerst kommt, dann wird dieser problemlos abgespeichert. Das Produkt danach ebenfalls.

Problem: wird das Produkt zuerst geschickt, gibt es noch keinen abgespeicherten Namen. Ich möchte aber die Id des Namens schon speichern, da die Information sonst verloren geht. Setzen kann ich die Id im Produkt nicht, da ich eine Objektinstanz der Translation brauche. Wenn ich ein Objekt für die Translation initialisiere, dann bekomme ich beim Speichern folgende Meldung:

Code:
org.hibernate.PropertyValueException: not-null property references a null or transient value: ....


Setze ich den Namen auf nullable, dann wird das Produkt zwar gespeichert, die Referenz auf den Namen ist aber verloren gegangen.

Gibt es eine Möglichkeit, dass man die Checks auf Referenzielle Integrität ausschaltet und die Id dennoch speichert, auch wenn das dazu gehörende Objekt nicht verfügbar ist? Ich würde eigentlich nur ungerne direkt im Objekt die Id der Übersetzung speichern (also Attribut "name_id" anstelle von "name"), denn das Produkt hat nunmal einen Namen und keine Namens-Id.

Vielen Dank für Eure Hilfen. Ich kann mir nicht vorstellen, dass ich der erste bin, der bei Asynchronem Datenaustausch auf diese Probleme stößt, daher bin ich gespannt, ob man mit Hibernate Properties alleine schon irgendwas erreichen kann.

danke,
Guido

PS: ach so. Die Klassen sind in Groovy programmiert. Generell verwende ich in dem Projekt Grails.


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

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.