Objašnjeno @JoinColumn Bilješka

1. Uvod

Bilješka javax.postojanost.JoinColumn označava stupac za kao stupac za pridruživanje entiteta ili kolekcije elemenata.

U ovom brzom vodiču prikazat ćemo neke primjere osnovnog @JoinColumn upotreba.

2. @Jedan na jedan Primjer mapiranja

The @JoinColumn bilješka u kombinaciji s a @Jedan na jedan mapiranje označava da se zadani stupac u entitetu vlasnika odnosi na primarni ključ u referentnom entitetu:

@Entity javna klasa Office {@OneToOne (fetch = FetchType.LAZY) @JoinColumn (name = "addressId") adresa privatne adrese; }

Gornji primjer koda stvorit će strani ključ koji povezuje Ured entitet s primarnim ključem iz Adresa entitet. Ime stupca stranog ključa u Ured entitet je naznačen s Ime imovine.

3. @OneToMany Primjer mapiranja

Kada koristite @OneToMany mapiranje možemo koristiti mapiranBy parametar koji označava da je zadani stupac u vlasništvu drugog entiteta.

@ Entity public class Employee {@Id private Long id; @OneToMany (fetch = FetchType.LAZY, mappedBy = "zaposlenik") privatne e-adrese s popisa; } @Entity javna klasa E-adresa {@ManyToOne (fetch = FetchType.LAZY) @JoinColumn (name = "worker_id") privatni zaposlenik zaposlenika; }

U gornjem primjeru, E-mail (entitet vlasnika) ima stupac pridruživanja zaposlenik_id koji pohranjuje vrijednost id i ima strani ključ za Zaposlenik entitet.

4. @JoinColumns

U situacijama kada želimo stvoriti više stupaca za pridruživanje možemo koristiti @JoinColumns napomena:

@Entity javni razred Office {@ManyToOne (fetch = FetchType.LAZY) @JoinColumns ({@JoinColumn (name = "ADDR_ID", referencedColumnName = "ID"), @JoinColumn (name = "ADDR_ZIP", referencedColumnName = "ZIP") }) adresa privatne adrese; } 

Gornji primjer stvorit će dva strana ključa koji pokazuju na iskaznica i ZIP stupci u Adresa entitet:

5. Zaključak

U ovom smo članku naučili kako koristiti @JoinColumn bilješka. Pokazali smo primjere kako stvoriti asocijaciju jednog entiteta i kolekciju elemenata.

Kao i uvijek, sav izvorni kod dostupan je na GitHub-u.


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