@JoinColumn kommentár magyarázata

1. Bemutatkozás

Az annotáció javax.persistence.JoinColumn oszlopot jelöl egy entitás társítás vagy elem gyűjtemény társítási oszlopaként.

Ebben a gyors bemutatóban bemutatunk néhány alapszintű példát @JoinColumn használat.

2. @1-1 Térképezési példa

A @JoinColumn annotáció kombinálva a @1-1 A leképezés azt jelzi, hogy a tulajdonos entitás adott oszlopa a referencia entitás elsődleges kulcsára utal:

@Entity public class Office {@OneToOne (fetch = FetchType.LAZY) @JoinColumn (név = "addressId") privát cím címe; }

A fenti kódpélda létrehoz egy idegen kulcsot, amely összekapcsolja a Hivatal entitás, amelynek elsődleges kulcsa a Cím entitás. Az idegen kulcs oszlopának neve a Hivatal entitást az adja meg név ingatlan.

3. @Egy a sokhoz Térképezési példa

Ha a @Egy a sokhoz térképezéssel használhatjuk a feltérképezve paraméter jelzi, hogy az adott oszlop egy másik entitás tulajdonában van.

@Entity public class Employee {@Id private Long id; @OneToMany (fetch = FetchType.LAZY, mappedBy = "alkalmazott") privát lista e-mailek; } @Entity nyilvános osztály E-mail {@ManyToOne (fetch = FetchType.LAZY) @JoinColumn (név = "alkalmazott_azonosító") magánalkalmazotti alkalmazott; }

A fenti példában Email (a tulajdonos entitás) rendelkezik csatlakozási oszloppal munkavállalói azonosító amely tárolja az id értéket és rendelkezik egy idegen kulccsal a Munkavállaló entitás.

4. @JoinColumns

Olyan helyzetekben, amikor több csatlakozási oszlopot akarunk létrehozni, használhatjuk a @JoinColumns kommentár:

@Entity public class Office {@ManyToOne (fetch = FetchType.LAZY) @JoinColumns ({@JoinColumn (név = "ADDR_ID", referentedColumnName = "ID"), @JoinColumn (név = "ADDR_ZIP", referentedColumnName = "ZIP") }) privát cím címe; } 

A fenti példa két idegen kulcsot hoz létre, amelyekre mutat ID és postai irányítószám oszlopok a Cím entitás:

5. Következtetés

Ebben a cikkben megtanultuk a @JoinColumn annotáció. Mutattunk példákat arra, hogyan hozhat létre egyetlen entitás társítást és elemgyűjteményt.

Mint mindig, minden forráskód elérhető a GitHubon.