OneToMany ohne Join Table

Status
Nicht offen für weitere Antworten.

deamon

Bekanntes Mitglied
Hallo,

ich habe eine Klasse, die eine Menge von Objekten einer anderen Klasse enthält, also eine klassische 1:n-Beziehung. Diese Beziehung möchte ich mit Hibernate Annotations abbilden, ohne das eine Join Table erzeugt wird. Aber wenn ich @OneToMany verwende, wird immer eine Join Table erzeugt. Muss ich auf XML-Mapping ausweichen, oder kann man Hibernate das auch mit Annotationen begreiflich machen?
 
Öhm, das hats bei mir noch nie gemacht.

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "xyz")

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_other", nullable = true)
 
Bei mir wird mit vergleichbaren Annotationen eine Join Table erzeugt, so ist es übrigens auch bei JPA als bisher einzige Möglichkeit vorgesehen. In der Hibernate-Referenz steht, dass OneToMany ohne Join Table bei unidirektionalen 1:n-Beziehungen nicht empfehlenswert sei. Das Argument dafür ist vermutlich Entkopplung, damit man Instanzen einer Klasse in Collections verschiedener Klassen verwenden kann, was ja mit einer einfachen Fremdschlüsselbeziehung nicht unbedingt geht.

Bloß warum steht das mit der Join Table nicht auch bei bidirektionalen 1:n-Beziehungen in der Hibernate-Referenz? Da gilt das doch genauso.
 
Also 1:n-Referenzen werden per Standard definitiv ohne JoinTable abgebildet. Ob nun JPA oder Hibernate ist da egal, JoinTable gibt es nu mit expliziter Anweisung!
Empfohlen wird allgemein eine bidirektionale 1:n-Beziehung.Aber 1:n hat nix mit ner JoinTable zu tun....
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben