Ich habe eine Frage zu Hibernate ManyToMany-Zuordnungen. Ich habe zwei Klassen A und B und die Zuordnung zwischen ihnen ist eine ManyToMany Mapping von Hibernate aufgelöst:Hinzufügen eines separaten Primärschlüssels zu einer Join-Tabelle im Ruhezustand
@Entity
@Table(name="A")
public class A {
@Id
@GeneratedValue
private Long id;
@ManyToMany
@JoinTable(name="C", [email protected](name="a_id"), [email protected](name="b_id"))
private Set bs;
}
@Entity
@Table(name="B")
public class B {
@Id
@GeneratedValue
private Long id;
@ManyToMany(mappedBy="bs")
private Set bs;
}
Wie Sie sehen können, der Table-Join ich benutze, ist C. Der Fremdschlüssel A und B „a_id "und" b_id ". Mein Verständnis ist, dass Hibernate einen zusammengesetzten Primärschlüssel mit a_id und b_id für Tabelle C erstellt.
Ich möchte keine Entität C in meinem Modell haben. Aber anstelle eines zusammengesetzten Primärschlüssels in Tabelle C hätte ich gerne eine generierte ID und eine eindeutige Einschränkung für die Felder a_id und b_id.
Ist es möglich, Hibernate mitzuteilen, einen separaten Primärschlüssel zu verwenden? Ohne eine Entität C hinzuzufügen?
Ich würde jede Hilfe zu schätzen wissen.
Vielen Dank!
Der Punkt ist die Datenbank existiert bereits mit der gegebenen Struktur (und aus alten Gründen ist es nicht wirklich anpassungsfähig). Die Tabelle hat nichts mehr als die drei Felder, über die ich geschrieben habe (id, a_id, b_id). Es wäre nett, neue Einträge in C einzufügen, ohne eine (nutzlose) C-Entität in meinem Code zu erstellen. Aber trotzdem danke für die Antwort. Ich denke, ich muss einfach diese Entität dann erstellen ... – BHulliger
@BHulliger siehe mein Update – Bozho