ZAWWW-2st1.2-w05.tresc-1.0--Slajd24

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Związki między encjami - Przykład

Związki między encjami - Przykład


Slajd pokazuje sposób definicji dwukierunkowego związku typu 1:N na przykładzie encji Wykonawca i Album. Związek jest dwukierunkowy, aby możliwe w aplikacji było zarówno odczytanie wszystkich albumów danego wykonawcy jak i wykonawcy dla danego albumu. Z wykonawcą związanych jest wiele albumów, stąd pole reprezentujące albumy wykonawcy jest typu kolekcji i jest oznaczone adnotacją @OneToMany. Album posiada jednego wykonawcę, więc pole reprezentujące związek po stronie encji Album jest typu Wykonawca i posiada adnotację @ManyToOne. Dla związku dwukierunkowego konieczne dla jednej strony związku jest wskazanie pola (lub właściwości) w drugiej encji reprezentującego drugi kierunek związku za pomocą elementu „mappedBy” adnotacji @OneToOne, @OneToMany lub @ManyToMany. W naszym przykładzie po stronie encji Wykonawca element „mappedBy” adnotacji @OneToMany wskazuje, że związek ten definiuje drugi kierunek nawigacji dla związku @ManyToOne reprezentowanego przez pole „wykonawca” w encji Album.

Związek @OneToMany po stronie encji Wykonawca posiada wartość CascadeType.ALL elementu „cascade”. Oznacza to, że wszystkie operacje na instancji encji Wykonawca mają powodować wykonanie takiej samej operacji dla powiązanych z nią instancji encji Album. Domyślnie kaskadowa propagacja operacji nie zachodzi. Inne stałe CascadeType, wskazujące poszczególne operacje to MERGE, PERSIST, REFRESH, REMOVE.

W przypadku związków dwukierunkowych należy pamiętać, że w celu powiązania instancji dwóch encji ze sobą należy dokonać powiązania dla obu stron związku. W naszym przykładzie, aby związać album z wykonawcą należałoby przypisać referencję do wykonawcy w obiekcie Album i dodać referencję do albumu do kolekcji albumów w obiekcie Wykonawca.


<< Poprzedni slajd | Spis treści | Następny slajd >>