Szukaj…


Uwagi

Relacje między jednostkami Podstawy

Kluczem obcym może być jedna lub więcej kolumn, które odwołują się do unikalnego klucza, zwykle klucza podstawowego, w innej tabeli.

Klucz obcy i podstawowy klucz nadrzędny, do którego się odwołuje, musi mieć tę samą liczbę i typ pól.

Klucze obce reprezentują relacje z kolumny lub kolumn w jednej tabeli do kolumny lub kolumn w innej tabeli.

Wielość relacji między jednostkami

Wielość relacji między jednostkami

Krotności są następujących typów:

  • Jeden do jednego : Każda instancja encji jest powiązana z pojedynczą instancją innej encji.
  • Jeden do wielu : Instancja encji może być powiązana z wieloma instancjami innych encji.
  • Wiele do jednego : wiele instancji encji może być powiązanych z pojedynczą instancją drugiej encji.
  • Wiele do wielu : Instancje encji mogą być powiązane z wieloma instancjami.

Mapowanie jeden do jednego

Odwzorowanie jeden do jednego definiuje powiązanie o pojedynczej wartości z innym bytem, który ma wielokrotność jeden do jednego. To odwzorowanie relacji wykorzystuje adnotację @OneToOne w odpowiedniej trwałej właściwości lub polu.

Przykład: ParkingPlace Vehicle i ParkingPlace .

Mapowanie jeden do wielu

Instancja encji może być powiązana z wieloma instancjami innych encji.

Relacje jeden do wielu używają adnotacji @OneToMany w odpowiedniej trwałej właściwości lub polu.

Element mappedBy jest potrzebny, aby odwoływać się do atrybutu opisanego przez ManyToOne w odpowiedniej jednostce:

 @OneToMany(mappedBy="attribute")

Skojarzenie jeden do wielu musi odwzorować zbiór jednostek.

Mapowanie wiele do jednego

Odwzorowanie typu wiele do jednego jest definiowane przez @ManyToOne adnotacją atrybutu w encji źródłowej (atrybut, który odnosi się do encji docelowej) adnotacją @ManyToOne .

@JoinColumn(name="FK_name") opisuje klucz @JoinColumn(name="FK_name") relacji.

Mapowanie wiele do wielu

Instancje encji mogą być powiązane z wieloma instancjami siebie nawzajem.

Relacje wiele do wielu używają adnotacji @ManyToMany w odpowiedniej trwałej właściwości lub polu.

Musimy użyć trzeciej tabeli, aby powiązać dwa typy jednostek (połącz tabelę).

@JoinTable Adnotation Example

Podczas mapowania relacji wiele do wielu w JPA konfiguracja tabeli używanej do łączenia kluczy obcych może być zapewniona za pomocą adnotacji @JoinTable :

@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;
   [...]
}

W tym przykładzie, który składa się z EntityA mający wiele do wielu relacji do EntityB, realizowanego przez entitiesB dziedzinie, używamy @JoinTable adnotacji, aby określić, że nazwa tabeli do łączenia tabela jest table_join_A_B , składa się z kolumn id_A i id_B , klucze obce odpowiednio odnoszące się do id kolumny w tabeli EntityA i tabeli EntityB; (id_A,id_B) będzie złożonym kluczem podstawowym dla tabeli table_join_A_B .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow