Wpis z mikrobloga

W ramach nauki dłubie sobie prosty projekt w Spring Boocie i dostałem zaćmienia już w fazie projektowania... Może ktoś dobroduszny pomoże?

W uproszczeniu, mam klasy:
Pracownik (id, imię, login, haslo)
Szkolenie (id, nazwa, listaObecnosci)

Chodzi ogólnie o to, żeby pracownik, który był na jakimś konkretnym szkoleniu, zaznaczył na nim swoją obecność (czyli w sumie chodzi o taką jakby listę obecności).

Póki co wymyśliłem, że dodam nową klasę Obecność, która będzie w relacji OneToOne z klasą Szkolenie (no bo jedna lista obecności do jednego szkolenia). Klasa Obecność zawierać będzie kolekcję obiektów typu Pracownik (przy tworzeniu listy wyciągniekt pracowników z bazy) i co dalej? Nie mogę sobie wyobrazić w jaki sposób zamodelować, żeby dany pracownik mógł na liście zaznaczać swoją obecność.

P.S. W projekcie używam oczywiście angielskich nazw.

#programowanie #spring #java
  • 9
@moriturius: O cholera, genialne w swojej prostocie. Czyli wszystko załatwiam dwoma klasami i nie potrzebuje nigdzie pola boolean obecność? Jakbym chciał dorobić front-end i np. wyświetlić listę pracowników oraz zajęć, to obecność sprawdzam w ten sposób, że porównuję czy dany pracownik znajduje się liście na konkretnych zajęciach?
@moriturius: nie pamietam juz hb ale czy w takiej konfiguracji, zeby dostac liste szkolen wg id pracownika nie trzeba skanowac wszystkich list pracownikow wszystkich szkolen?

getSzkoleniaByPracownik(int id) ?

bo to co zaproponowal ponton @JoinTable i @ManyToMany zalatwia (user - wiele szkolen, szkolenie -wiele userow)
@foobarek: to zależy co chcesz zrobić, jeśli chcesz wiedzieć, czy ktoś np. był zapisany na jakieś szkolenie ale nie przyszedł albo przyszedł to musisz mieć dodatkową klasę, jeśli nie i interesuje cię tylko czy brał udział czy nie to dwie wystarczą
ale tabele i tak będą trzy
@foobarek: jeżeli nie potrzebujesz zapisywać, czy użytkownik był zapisany na szkolenie ale był nieobecny to możesz zastosować pomysł @moriturius (chociaż uważam, że jest nieelegancki). Jeżeli potrzebujesz zapisywać, czy użytkownik był obecny/nieobecny albo chcesz to zrobić ładnie to skorzystaj z pomysłu @SuppressWarnings -> jak odwzorować takie połączenie w encjach nauczysz się z np. tego linku