Middle
Jakie rodzaje relacji istnieją w Hibernate?
sobes.tech AI
Odpowiedź od AI
Hibernate definiuje następujące rodzaje relacji między encjami:
-
Proste powiązanie (Basic Association): relacja jeden-do-jednego, w której jedna encja zawiera bezpośredni odwołanie do innej (bez użycia zewnętrznych tabel do powiązania).
-
Powiązania "Jeden-do-Wielu" (One-to-Many):
- Jedna encja może być powiązana z wieloma innymi encjami.
- Zazwyczaj realizowane za pomocą klucza obcego w tabeli "wielu".
-
Powiązania "Wiele-do-Jednego" (Many-to-One):
- Wiele encji jest powiązanych z jedną inną encją.
- Jest to odwrotność relacji "Jeden-do-Wielu".
- Realizowane przez klucz obcy w tabeli "wielu".
-
Powiązania "Jeden-do-Jednego" (One-to-One):
- Każda encja jednego typu jest powiązana z maksymalnie jedną encją innego typu.
- Realizowane albo przez wspólny klucz główny, albo przez klucz obcy w jednej z tabel.
-
Powiązania "Wiele-do-Wielu" (Many-to-Many):
- Wiele encji jednego typu jest powiązanych z wieloma encjami innego typu.
- Wymaga osobnej tabeli pośredniczącej do przechowywania relacji.
Hibernate zapewnia adnotacje do opisu tych relacji:
@OneToOne@OneToMany@ManyToOne@ManyToMany
Można także skonfigurować operacje kaskadowe (cascading) do automatycznego propagowania operacji na encji (np. zapis, usunięcie) na powiązane encje.