@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.


$config[zx-auto] not found$config[zx-overlay] not found