@ JoinColumn Annotation erklärt

1. Einleitung

Die Anmerkung javax.persistence.JoinColumn markiert eine Spalte als Verknüpfungsspalte für eine Entitätszuordnung oder eine Elementsammlung.

In diesem kurzen Tutorial zeigen wir einige Beispiele für die grundlegende Verwendung von @JoinColumn .

2. Beispiel für eine @ OneToOne- Zuordnung

Die Annotation @JoinColumn in Kombination mit einer Zuordnung von @OneToOne gibt an, dass eine bestimmte Spalte in der Eigentümerentität auf einen Primärschlüssel in der Referenzentität verweist:

@Entity public class Office { @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "addressId") private Address address; }

Im obigen Codebeispiel wird ein Fremdschlüssel erstellt, der die Office- Entität mit dem Primärschlüssel der Adressentität verknüpft . Der Name der Fremdschlüsselspalte in der Office- Entität wird durch die Eigenschaft name angegeben .

3. @ OneToMany- Zuordnungsbeispiel

Bei Verwendung einer @ OneToMany- Zuordnung können wir den Parameter mappedBy verwenden , um anzugeben, dass die angegebene Spalte einer anderen Entität gehört.

@Entity public class Employee { @Id private Long id; @OneToMany(fetch = FetchType.LAZY, mappedBy = "employee") private List emails; } @Entity public class Email { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "employee_id") private Employee employee; }

Im obigen Beispiel hat Email (die Eigentümerentität) eine Verknüpfungsspalte employee_id , in der der ID-Wert gespeichert ist, und einen Fremdschlüssel für die Mitarbeiterentität .

4. @JoinColumns

In Situationen, in denen wir mehrere Join-Spalten erstellen möchten, können wir die Annotation @JoinColumns verwenden :

@Entity public class Office { @ManyToOne(fetch = FetchType.LAZY) @JoinColumns({ @JoinColumn(name="ADDR_ID", referencedColumnName="ID"), @JoinColumn(name="ADDR_ZIP", referencedColumnName="ZIP") }) private Address address; } 

Im obigen Beispiel werden zwei Fremdschlüssel erstellt, die auf ID- und ZIP- Spalten in der Adressentität verweisen :

5. Schlussfolgerung

In diesem Artikel haben wir gelernt, wie die Annotation @JoinColumn verwendet wird . Wir haben Beispiele gezeigt, wie sowohl eine einzelne Entitätszuordnung als auch eine Elementsammlung erstellt werden.

Wie immer ist der gesamte Quellcode über GitHub verfügbar.