# [Hibernate] 0..1 Beziehung mit XDoclet abbilden



## RoNa (17. Apr 2008)

Hallo Experten,

ich nutze in meinem Programm Hibernate als O/R-Mapper. Ich finde es sehr gut. Die Mapping-Dateien werden mit ANT generiert. Dafür werden im Sourcecode XDoclet-Annotations eingegeben. Das funktioniert ganz gut.

Nun habe ich in meinem Programm eine 0..1 Beziehung. _"Ein Produkt kann keine oder eine Sprache haben."_ Dafür sollen 2 Tabellen (Produkt, Sprache) angelegt sein. In Produkt soll nur die _id_ der Sprache gepeichert werden. 

Welche XDoclet Annotation soll ich benutzen um das abzubilden? Irgendwie krieg ich das nicht hin. ;-(

Danke für Hilfe im Voraus.

Gruß,

Robert


----------



## ms (17. Apr 2008)

Das sollte ein ganz einfaches 
	
	
	
	





```
@hibernate.many-to-one
```
 in Produkt sein (beim Getter von Sprache).
Letztendlich ist es eine 1...n Beziehung, denn eine Sprache kann ja in vielen Produkten vorkommen.

ms


----------



## RoNa (18. Apr 2008)

Hallo,

danke sehr. Es funktioniert. Ich muss aber vorher die Sprache speichern, weil sonst eine Exception geworfen wird. :-(

Ich würde erwarten, dass Hibernate das automatisch macht, sobald ein neues Unterobjekt irgendwo eingefügt werden soll.

Kann man sowas irgendwo einstellen? Ist aber nur eine Schmakazie.

Ansonsten danke sehr.

Robert


----------



## ms (18. Apr 2008)

Du kannst mit z.B. cascade="all" erzwingen, dass das Sprache-Objekt ebenfalls angelegt wird.
Allerdings wird dann jedesmal ein neues Sprache-Objekt angelegt, sofern du es nicht explizit lädst und dem Produkt zuweist.

Logischer wäre es, wenn die Sprache schon vorher persistent ist, weil die Sprache eigentlich der Parent von Produkt ist.

ms


----------

