@JoinColumn-kommentar forklaret
1. Introduktion
Annotationen javax.persistence.JoinColumn markerer en kolonne til som en sammenføjningskolonne for en enhedsforening eller en elementsamling.
I denne hurtige vejledning viser vi nogle eksempler på grundlæggende @JoinColumn brug.
2. @En til en Korteksempel
Det @JoinColumn kommentar kombineret med en @En til en kortlægning angiver, at en given kolonne i ejerenheden henviser til en primær nøgle i referenceenheden:
@Entity public class Office {@OneToOne (fetch = FetchType.LAZY) @JoinColumn (name = "addressId") privat adresse adresse; }
Ovenstående kodeeksempel opretter en fremmed nøgle, der forbinder Kontor enhed med den primære nøgle fra Adresse enhed. Navnet på den udenlandske nøglekolonne i Kontor enhed er specificeret af navn ejendom.
3. @OneToMany Korteksempel
Når du bruger en @OneToMany kortlægning kan vi bruge kortlagt af parameter for at angive, at den givne kolonne ejes af en anden enhed.
@Entity offentlig klassemedarbejder {@Id privat Lang id; @OneToMany (fetch = FetchType.LAZY, mappedBy = "medarbejder") private e-mails med listen; } @Entity public class E-mail {@ManyToOne (fetch = FetchType.LAZY) @JoinColumn (name = "medarbejder_id") privat medarbejdermedarbejder; }
I ovenstående eksempel E-mail (ejerenheden) har en tilslutningskolonne Medarbejder-ID der gemmer id-værdien og har en fremmed nøgle til Medarbejder enhed.

4. @JoinColumns
I situationer, hvor vi vil oprette flere sammenføjningskolonner, kan vi bruge @JoinColumns kommentar:
@Entity public class Office {@ManyToOne (fetch = FetchType.LAZY) @JoinColumns ({@JoinColumn (name = "ADDR_ID", referencedColumnName = "ID"), @JoinColumn (name = "ADDR_ZIP", referencedColumnName = "ZIP")) }) privat adresse adresse; }
Ovenstående eksempel opretter to udenlandske nøgler, der peger på ID og ZIP kolonner i Adresse enhed:

5. Konklusion
I denne artikel har vi lært, hvordan man bruger @JoinColumn kommentar. Vi har vist eksempler på, hvordan man opretter både enhedssammenslutning og elementindsamling.
Som altid er al kildekode tilgængelig på GitHub.