Cel: Stworzenie efektywnego modelu obiektowego przy pomocy Hibernate: dziedziczenie, asocjacja, kompozycja. Wybór strategii odzwierciedlenia dziedziczenia w bazie danych.
Trochę inna strona Hibernate. Do tej pory praca z Hibernate wyglądała następująco: po prawidłowym skonfigurowaniu połączenia z bazą danych należało stworzyć model obiektowy baz danych, a następnie przy pomocy plików mapujących można było wygenerować schemat bazy danych. Jest to tak zwane "podejście z góry w dół".
W NetBeans 6.5 zostało dodane narzędzie, które umożliwia odwrotny scenariusz odwzorowywania, czyli na początku tworzony jest schemat bazy danych, a następnie przy pomocy narzędzi Hibernate zostają wygenerowane klasy Javy oraz pliki odwzorowań. Tak zwane "podejście z dołu do góry".
Jednak problemy odwzorowania relacyjno obiektowego nie znikają. Schemat obiektowy posiada wiele takich własności, których nie można bezpośrednio przełożyć na schemat relacyjny. Problem pojawia się w momencie gdy chcemy odzwierciedlić dziedziczenie, asocjacje czy kompozycję.
1. Dziedziczenie
Istnieją trzy różne podejścia stosowane do odwzorowania dziedziczenia:
1.1. Tabela na każdą klasę konkretną – dokładnie jedna tabela na każdą nieabstrakcyjną klasę, wszystkie własności klasy nadrzędnej są dopisywane do klas dziedziczącej.
WADA: Zapytanie dotyczące klasy bazowej musi zostać rozbite na wiele poleceń SELECT, często jest to mało wydajne.
1.2. Tabela na każdą hierarchie klas – czyli całą hierarchia klas odwzorowywana jest w jednej tabeli. Dodatkowo dodawana jest kolumna dyskryminatora typu.
WADA: Nie można nadać ograniczenia Not null dla kolumn które są właściwościami podklasy.
1.3. Tabela na każdą podklasę – czyli każda klasa jest reprezentowana jako jedna tabela w bazie i podklasy są w asocjacji z klasą nadrzędną.
WADA: Złożone zapytania.
Wszystkie te modele mają swoje wady i zalety tak więc należy stosować strategię odpowiednią do konkretnego schematu.
Tu omówiony został przykład:
Odwzorowanie dziedziczenia przykład
http://agatkiwoj.blogspot.com/2008/11/odwzrowanie-dziedziczenia-przykad.html
Brak komentarzy:
Prześlij komentarz