Készíts olyan JPA programot, amely egy egyetemet modellez az alábbiak szerint. Az egyetemnek vannak hallgatói (Student
) és oktatói (Professor
), valamint vannak kurzusok (Course
). Mindegyik rendelkezik automatikusan generált azonosítóval (id
) és névvel (name
). A hallgatók a kurzusokat hallgatják (studies
, egy hallgató több kurzust is hallgathat), az oktatók oktatják (teaches
, egy oktató több kurzust is oktathat). A kurzusokhoz ismert a tárgy neve (subjectName
, de még elegánsabb külön Subject
entitás felvételével; ugyanazon tárgyhoz tartozhat több kurzus), valamint az, hogy mikor kezdődik: dayOfWeek
(ez DayOfWeek
felsorolási típusként ábrázolva), hour
, minute
.
Az adatok egyszerű feltöltéséhez legyenek student.csv
, professor.csv
, course.csv
fájljaink, ezek soronként, vesszővel elválasztva tartalmazzák egy-egy entitás adatait. (A .csv
fájlok egyszerű szövegszerkesztővel előállíthatóak.) A program kezdetben töltse fel a university
persistence unitot a fájlokból felolvasott adatokkal, majd a sztenderd bemenetről várt sorok utasítanak a következőkre. (A nagybetűs részek változtatható paraméterek, a kisbetűsek fix részei a parancsoknak. Feltételezhető, hogy a bemeneten csak érvényes parancsok érkeznek, nem szükséges a hibás eseteket – pl. hiányzó paraméterek – kezelni.)
day-off S
: kilistázza azokat a napokat, amelyeken S
hallgatónak nincsen órája.colleagues T
: kilistázza azokat az oktatókat, akiknek van T
-vel közös tárgyuk.teaches X Y
: X
oktató oktatja-e Y
hallgatót?kind X
: az X
névről megmondja, hogy hallgató, oktató vagy kurzus neve-e, vagy nincsen a rendszerben. A sztenderd kimenetre ennek megfelelően íródjon ki a student
, Professor
, course
, unknown
szöveg. Az egyszerűség kedvéért tegyük fel, hogy a négy lehetőség közül pontosan egy teljesül.merge C1 C2
: a C1
kurzus megszűnik, a hallgatói a C2
kurzust hallgatják a továbbiakban.swap C1 C2
: a két kurzus oktatói cserélődjenek fel.between D H1 H2
: kilistázza a D
napon H1
óra és H2
óra között kezdődő órák neveit. H2
óra 0
perc már nem értendő bele az intervallumba.
between D H1 M1 H2 M2
: kilistázza a D
napon H1
óra M1
perc és H2
óra M2
perc között kezdődő órák neveit, az intervallum mindkét vége zárt.