Konzeptionelle Frage zu Hibernate (@OneToMany)

Hallo alle zusammen,

ich bin gerade dabei mich mit Hibernate zu beschäftigen und würde gerne wissen wie ihr das aufsetzten würdet:

Ich habe eine Entityklasse, die eine @OneToMany-Relationship hat, die jedoch auch eigenstaendig verwendet werden soll.
Zum Beispiel:
Class: Garderobe -> @OneToMany: Jacke (Cascade type: persist, merge)
(Ja an meiner Garderobe gibt es nur eine Jacke :) )

Die Jacke kann es schon geben oder eben neu sein.
Wenn ich jetzt eine neues Garderoben-Objekt anlege habe ich 2 Optionen:

1. Die PU nach alle vorhandenen Jacke-Objekten fragen und eins davon auswaehlen (passt prima, da meine dann Hibernate erkennt das es sich auf grund meiner generierten ID um die gleiche Jacke handelt und das ganze verlinkt).

2. Eine neue Instanz von Jacke anlegen, und eine DAO implementieren, die das ganze von 1. beim speichern macht (nachschauen ob es schon so eine Instanz von Jacke gibt, wenn ja diese verwenden, wenn nein eine neue Anlegen). Dann müsste ich nicht jedes mal erst die Datenbank abfragen, wenn ich mit den Objekten in meiner BusinessUnit umgehe. Der Ansatz ist eher ein "Save or Update".

Gefallen tut mir Version 1 zwar besser, jedoch ziehe ich dann jedes mal die Datenbankabfragen bis in meine BusinessUnit hoch. Deswegen finde ich Variante 2 praktischer.

Was denkt ihr? Wann sollte man was machen? Gibt es noch eine andere Variante?

Gruß
meinereiner
 

Neue Beiträge