Lista zadań nr 5

Hibernate i Java

  1. Dana jest hierarchia klas: Osoba > Pracownik > Nauczyciel > Adiunkt. Zaimplementuj te klasy, utwórz odpowiednie pliki mapujące we wszystkich trzech możliwowych schematach, czyli sposobach odwzorowania dziedziczenia. Sprawdź, czy do jednej hierarchi można stosować różne podejścia, tzn. np. dla relacji Osoba > Pracownik zastosować jedną strategię, a dla relacji Pracownik > Nauczyciel.
    [2p]
  2. Porównaj szybkość operacji wstawiania i aktualizacji danych w przypadku użycia różnych strategii odwzorowania dziedziczenia. Przypominam, że przy dokonywaniu pomiaru czasu wykonania jakiejś operacji (być może powtórzonej np. 5000 razy), pomiar należy powtórzyć np. 100 razy, po czym wyciągną średnią lub medianę. Jednorazowy pomiar może być zupełnie nieadekwatny z powodu np. chwilowego przeciążenia komputera przez inne procesy.
    [2p]
  3. Mamy relację jeden-do-wielu Jednostka — Osoba. Zaimplementuj obie klasy, utwórz odpowiedni plik mapujący. Przypuśćmy, że pobieramy z bazy danych jedną konkretną osobę. Korzystając z narzędzia SQL Profiler (dostępny w pełnej wersji SQL Server 2005) lub z logów generowanych przez sam Hibernate sprawdź, czy pobierana jest tylko osoba, czy automatycznie jest także pobierana jednostka dla tej osoby. Sprawdź w dokumentacji, czy to domyślne zachowanie można zmienić. Podobną weryfikację zrób przy pobieraniu obiektu jednostki. Sprawdź też jak jest w przypadku, gdy łańcuch powiązań jest dłuższy niż dwa, np. mamy powiązania Jednostka — Osoba — Adres.
    [2p]
  4. Mamy relację wiele-do-wielu Pracownik — Drukarka. Utwórz odpowiedni plik mapujący. Zaimplementuj obie klasy tak, że stworzyć wrażenie symetryczności, tzn. np. dodajemy drukarkę dla pracownika, po czym chcemy, żeby niezależnie od tego, który obiekt zapiszemy, zmiana została w bazie danych zarejestrowana.
    [2p]
  5. Przygotuj przykłady, który zaprenzentują różne sposoby sprowadzania danych: natychmiastowe, leniwe, wyprzedzające i wsadowe.
    [2p]
  6. Przypadku jakichkolwiek wątpliwości należy postępować zgodnie ze zdrowym rozsądkiem lub wysłać maila do prowadzącego.