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