@JoinColumn Kommentar forklart

1. Introduksjon

Kommentaren javax.persistence.JoinColumn markerer en kolonne for som en tilknytningskolonne for en enhetsforening eller en elementsamling.

I denne raske opplæringen viser vi noen eksempler på grunnleggende @JoinColumn bruk.

2. @OneToOne Kartleggingseksempel

De @JoinColumn kommentar kombinert med en @OneToOne kartlegging indikerer at en gitt kolonne i eierenheten refererer til en primærnøkkel i referanseenheten:

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

Ovennevnte kodeeksempel vil opprette en utenlandsk nøkkel som kobler til Kontor enhet med primærnøkkelen fra Adresse enhet. Navnet på den utenlandske nøkkelkolonnen i Kontor enhet er spesifisert av Navn eiendom.

3. @OneToMany Kartleggingseksempel

Når du bruker en @OneToMany kartlegging kan vi bruke kartlagt av parameter for å indikere at den gitte kolonnen eies av en annen enhet.

@Entity offentlig klasse ansatt {@Id privat Lang id; @OneToMany (fetch = FetchType.LAZY, mappedBy = "ansatt") private e-postmeldinger; } @Entity offentlig klasse E-post {@ManyToOne (fetch = FetchType.LAZY) @JoinColumn (name = "ansatte_id") privat ansatt ansatt; }

I eksemplet ovenfor, E-post (eierenheten) har en sammenføyningskolonne Ansatt ID som lagrer id-verdien og har en utenlandsk nøkkel til Ansatt enhet.

4. @JoinColumns

I situasjoner når vi ønsker å lage flere sammenføyningskolonner, kan vi bruke @JoinColumns kommentar:

@Entity public class Office {@ManyToOne (fetch = FetchType.LAZY) @JoinColumns ({@JoinColumn (name = "ADDR_ID", referatedColumnName = "ID"), @JoinColumn (name = "ADDR_ZIP", referatedColumnName = "ZIP")) }) privat adresse adresse; } 

Ovennevnte eksempel vil opprette to utenlandske nøkler som peker på ID og glidelås kolonnene i Adresse enhet:

5. Konklusjon

I denne artikkelen har vi lært hvordan du bruker @JoinColumn kommentar. Vi har vist eksempler på hvordan du lager både tilknytning til enkeltpersoner og elementsamling.

Som alltid er all kildekode tilgjengelig på GitHub.


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