jpa
Relationer mellan enheter
Sök…
Anmärkningar
Relationer mellan grunderna för enheter
En utländsk nyckel kan vara en eller flera kolumner som refererar till en unik nyckel, vanligtvis den primära nyckeln, i en annan tabell.
En utländsk nyckel och den primära överordnade nyckeln som den refererar till måste ha samma antal och typ av fält.
Främmande nycklar representerar förhållanden från en kolumn eller kolumner i en tabell till en kolumn eller kolumner i en annan tabell.
Mångfald i enhetsrelationer
Mångfald i enhetsrelationer
Multiplikationer är av följande typer:
- En-till-en : Varje enhetsinstans är relaterad till en enda instans av en annan enhet.
- En-till-många : En enhetsinstans kan relateras till flera instanser av de andra enheterna.
- Många till en : flera instanser av en enhet kan relateras till en enda instans av den andra enheten.
- Många till många : Enhetens instanser kan relateras till flera instanser av varandra.
En-till-en-kartläggning
En-till-en-kartläggning definierar en envärderad förening till en annan enhet som har en-till-en-mångfald. Denna relationskartläggning använder @OneToOne kommentaren på motsvarande bestående egendom eller fält.
Exempel: Vehicle och ParkingPlace enheter.
En-till-många-kartläggning
En enhetsinstans kan relateras till flera instanser av de andra enheterna.
En-till-många-relationer använder @OneToMany kommentaren på motsvarande ihållande egendom eller fält.
mappedBy behövs för att hänvisa till attributet som anges av ManyToOne i motsvarande enhet:
@OneToMany(mappedBy="attribute")
En för många förening måste kartlägga insamlingen av enheter.
Många-till-en-kartläggning
En kartläggning av många till en definieras genom att kommentera attributet i källenheten (attributet som hänvisar till målenheten) med @ManyToOne anteckningen.
En @JoinColumn(name="FK_name") beskriver en nyckel för en relation.
Kartläggning av många till många
Enhetsinstanserna kan vara relaterade till flera instanser av varandra.
Många-till-många-relationer använder @ManyToMany anteckningen på motsvarande ihållande egendom eller fält.
Vi måste använda en tredje tabell för att associera de två entitetstyperna (gå med i tabellen).
@JoinTable Annotation Exempel
Vid kartläggning av många-till-många-relationer i JPA kan konfiguration för tabellen som används för att ansluta utländska nycklar tillhandahållas med @JoinTable kommentaren:
@Entity
public class EntityA {
@Id
@Column(name="id")
private long id;
[...]
@ManyToMany
@JoinTable(name="table_join_A_B",
joinColumns=@JoinColumn(name="id_A"), referencedColumnName="id"
inverseJoinColumns=@JoinColumn(name="id_B", referencedColumnName="id"))
private List<EntityB> entitiesB;
[...]
}
@Entity
public class EntityB {
@Id
@Column(name="id")
private long id;
[...]
}
I det här exemplet, som består av att EntityA har ett många-till-många-förhållande till EntityB, realiserat av fältet entitiesB , använder vi @JoinTable-anteckningen för att specificera att tabellnamnet för sammanfogningstabellen är table_join_A_B , sammansatt av kolumnerna id_A och id_B , utländska nycklar som refererar till kolumn- id i EntityAs tabell och i EntityBs tabell; (id_A,id_B) kommer att vara en sammansatt primärnyckel för table_join_A_B tabell.