@JoinColumn Annotatie uitgelegd

1. Inleiding

De annotatie javax.persistence.JoinColumn markeert een kolom als een samenvoegkolom voor een entiteitsassociatie of een elementenverzameling.

In deze korte tutorial laten we enkele voorbeelden zien van basic @JoinColumn gebruik.

2. @Een op een Toewijzingsvoorbeeld

De @JoinColumn annotatie gecombineerd met een @Een op een mapping geeft aan dat een bepaalde kolom in de entiteit eigenaar verwijst naar een primaire sleutel in de referentie-entiteit:

@Entity openbare klasse Office {@OneToOne (fetch = FetchType.LAZY) @JoinColumn (name = "addressId") privéadres; }

Het bovenstaande codevoorbeeld zal een externe sleutel maken die de Kantoor entiteit met de primaire sleutel van de Adres entiteit. De naam van de kolom met de externe sleutel in het Kantoor entiteit wordt gespecificeerd door naam eigendom.

3. @Een te veel Toewijzingsvoorbeeld

Bij gebruik van een @Een te veel mapping kunnen we de mappedBy parameter om aan te geven dat de gegeven kolom eigendom is van een andere entiteit.

@Entity openbare klasse Werknemer {@Id privé Lange id; @OneToMany (fetch = FetchType.LAZY, mappedBy = "werknemer") privélijst e-mails; } @Entity openbare klasse E-mail {@ManyToOne (fetch = FetchType.LAZY) @JoinColumn (naam = "employee_id") privé Medewerker medewerker; }

In het bovenstaande voorbeeld E-mail (de eigenaar-entiteit) heeft een join-kolom employee_id die de id-waarde opslaat en een externe sleutel heeft voor de Werknemer entiteit.

4. @JoinColumns

In situaties waarin we meerdere join-kolommen willen maken, kunnen we de @JoinColumns annotatie:

@Entity openbare klasse Office {@ManyToOne (fetch = FetchType.LAZY) @JoinColumns ({@JoinColumn (name = "ADDR_ID", referencedColumnName = "ID"), @JoinColumn (name = "ADDR_ZIP", referencedColumnName = "ZIP") }) privé adres; } 

In het bovenstaande voorbeeld worden twee externe sleutels gemaakt die verwijzen naar ID kaart en ZIP kolommen in de Adres entiteit:

5. Conclusie

In dit artikel hebben we geleerd hoe u de @JoinColumn annotatie. We hebben voorbeelden laten zien hoe u zowel een enkele entiteitsassociatie als een elementverzameling kunt maken.

Zoals altijd is alle broncode beschikbaar op GitHub.


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