Sobes.tech
Middle

Jakie rodzaje relacji istnieją w Hibernate?

sobes.tech AI

Odpowiedź od AI

Hibernate definiuje następujące rodzaje relacji między encjami:

  1. 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).

  2. 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".
  3. 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".
  4. 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.
  5. 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.