Lista zadań nr 3

NHibernate

Dane są tabele:

Publikacja( ID INT PK, Sygn INT, Tytul VARCHAR(50) )
Czytelnik( ID INT PK, Pesel CHAR(11), Imie VARCHAR(20), Nazwisko VARCHAR(40) )
Wypozyczenie(ID INT PK, ID_Publikacja INT REF Publikacja, ID_Czytelnik INT REF Czytelnik, DataOd DATE, DataDo DATE, Oddana BOOL)

  1. Przygotuj klasy oraz ich mapowanie na tabele Ksiazka, Czytelnik i Wypozyczenie za pomocą:
    • plików XML,
    • atrybutów w klasach,
    • mechanizmu z bibliotegki FluentNHibernate.
    [3p]
  2. Zbiór encji oparty o tabele rozszerzamy o następujące klasy dziedziczące z klasy Publikacja:
    • Ksiazka( Autor VARCHAR(50), IleStron INT ) : Publikacja,
    • Czasopismo( Czestosc VARCHAR(20), Nr INT ) : Publikacja.
    Odpowiednio rozszerzyć mapowania z zadania 1, aby zamapować powyższe klasy. Należy to zrobić na trzy sposoby omówione na wykładzie.
    [3p]
  3. Wypełnić bazę danych przykładowymi danymi (realnymi, żeby potem można było zadawać jakieś sensowne zapytania). Przygotować 10 przykładowych raportów, w tym
    • 7 w języku HQL,
    • 3 za pomocą „obiektowego języka zapytań”.
    W przykładowych raportach należy wykorzystać podstawowe konstrukcje jak złączenie, grupowanie, agregacja, warunki (where i having), sortowanie. Należy też przygotować co najmniej jedno zapytanie polimorficzne.
    [4p]