# PRA2024 Pracownia Programowania - Projekt 2 Autor: Marcin Hutek s485949 Wykorzystana baza danych zostala przygotowana przy uzyciu PostgreSQL i zawiera cztery tabele: 'films', 'films_info', 'category' oraz 'language'. Baza zostala wstepnie spopulowana tysiacem rekordow. Backup bazy z jej kodem zrodlowym PRA2024.sql wygenerowany przy pomocy komendy pg_dump umieszczony został w folderze database w drzewku projektu. ## ZMAPOWANE ENCJE ## #### FilmModel #### - zmapowana podstawowa encja 'films' z bazy danych zawierajaca kolumny: 'film_id', 'film_title' - w relacji OneToOne z encją FilmInfoModel #### FilmInfoModel #### - zmapowana encja 'films_info' bazy danych zawierajaca kolumny: 'film_id', 'description', 'release_year', 'language_id', 'length', 'rating', 'category_id' oraz pole ZonedDateTime - 'last_update' - w relacji OneToOne z encją FilmModel - w relacji ManyToOne z encją FilmCategoryModel - w relacji ManyToOne z encją FilmLanguageModel #### FilmCategoryModel #### - zmapowana encja 'category' bazy danych zawierajaca kolumny: 'category_id', 'name' - w relacji OneToMany z encją FilmInfoModel #### FilmLanguageModel #### - zmapowana encja 'language' bazy danych zawierajaca kolumny: 'language_id', 'language' - w relacji OneToMany z encją FilmInfoModel ## SESJA ORAZ ZAPYTANIA ## #### Main #### - zdefiniowanie sesji oraz wywolanie poszczegolnych zapytan #### Queries #### - dwa query z parametrem: getFilmByLangYear oraz getFilmByLangCategory - query stronicowane: getAllFilmsByPage - metoda sluzaca do tworzenia nowych rekordow w bazie: createFilmModel ## TESTY ## #### QueriesTest #### - dla kazdego zapytania przygotowane zostaly po dwa przykladowe testy mockujace - dla metody sluzacej do dodawania rekordow do bazy przygotowany zostal jeden przykladowy test mockujacy sesje i sprawdzajacy czy rekord zostal poprawnie utworzony