Uni- Directional: Die besitzende Klasse Foo verwaltet eine Liste von Bars. In der Datenbank haben Bars einen Fremdschlüssel für Foo.
<code class="java">@Entity public class Foo { @OneToMany private List<Bar> bars; } @Entity public class Bar { @ManyToOne @JoinColumn(name="fooId") private Foo foo; }</code>
Bidirektional: Sowohl Foo als auch Bar pflegen Verweise aufeinander.
<code class="java">@Entity public class Foo { @OneToMany(mappedBy="foo") private List<Bar> bars; } @Entity public class Bar { @ManyToOne @JoinColumn(name="fooId") private Foo foo; }</code>
Unidirektional: Die besitzende Klasse Bar hat einen Verweis auf Foo . In der Datenbank hat Foo einen Fremdschlüssel für Bar.
<code class="java">@Entity public class Bar { @ManyToOne @JoinColumn(name="fooId") private Foo foo; } @Entity public class Foo { // No corresponding mapping to Bar }</code>
Bidirektional: Sowohl Foo als auch Bar pflegen Verweise aufeinander.
<code class="java">@Entity public class Bar { @ManyToOne @JoinColumn(name="fooId") private Foo foo; } @Entity public class Foo { @OneToMany(mappedBy="foo") private List<Bar> bars; }</code>
Verwenden einer Brückentabelle: Erstellt eine Join-Tabelle zum Speichern der Beziehungen.
<code class="java">@Entity public class Foo { @ManyToMany @JoinTable(name="FOO_BAR", joinColumns = @JoinColumn(name="fooId"), inverseJoinColumns = @JoinColumn(name="barId")) private List<Bar> bars; } @Entity public class Bar { @ManyToMany @JoinTable(name="FOO_BAR", joinColumns = @JoinColumn(name="barId"), inverseJoinColumns = @JoinColumn(name="fooId")) private List<Foo> foos; }</code>
Das obige ist der detaillierte Inhalt vonWie kann ich Hibernate- und Spring-Annotationen nutzen, um Eins-zu-Viele-, Viele-zu-Eins- und Viele-zu-Viele-Beziehungen zwischen Entitäten einzurichten und zu verwalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!