From f603246879bf276dc27f48abe5a849f6e7be5476 Mon Sep 17 00:00:00 2001 From: TayBone2305 <tayfun.alexander@gmx.de> Date: Tue, 14 Jun 2022 15:27:51 +0200 Subject: [PATCH] Hibernate ORM for DB 2.0 --- .idea/dbnavigator.xml | 6 +++- .idea/workspace.xml | 44 +++++++++++----------------- src/main/Application.java | 14 +++++++-- src/main/classes/Course.java | 6 +++- src/main/classes/CoursesOfStudy.java | 34 ++++++++++----------- src/main/classes/Enrollment.java | 1 + src/main/classes/Lecturer.java | 2 +- 7 files changed, 56 insertions(+), 51 deletions(-) diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml index 0651cff..0168272 100644 --- a/.idea/dbnavigator.xml +++ b/.idea/dbnavigator.xml @@ -34,7 +34,10 @@ </connection> </component> <component name="DBNavigator.Project.DatabaseFileManager"> - <open-files /> + <open-files> + <object connection-id="1c72da42-0bf8-4e1f-be16-76f69d3e0611" object-ref="schemas/notenmanager/tables/kurs" /> + <object connection-id="1c72da42-0bf8-4e1f-be16-76f69d3e0611" object-ref="schemas/notenmanager/tables/studiengang" /> + </open-files> </component> <component name="DBNavigator.Project.DatabaseSessionManager"> <connection id="1c72da42-0bf8-4e1f-be16-76f69d3e0611" /> @@ -43,6 +46,7 @@ <filter-actions connection-id="1c72da42-0bf8-4e1f-be16-76f69d3e0611" dataset="notenmanager.course" active-filter-id="EMPTY_FILTER" /> <filter-actions connection-id="1c72da42-0bf8-4e1f-be16-76f69d3e0611" dataset="notenmanager.coursesofstudy" active-filter-id="EMPTY_FILTER" /> <filter-actions connection-id="1c72da42-0bf8-4e1f-be16-76f69d3e0611" dataset="notenmanager.kurs" active-filter-id="EMPTY_FILTER" /> + <filter-actions connection-id="1c72da42-0bf8-4e1f-be16-76f69d3e0611" dataset="notenmanager.studiengang" active-filter-id="EMPTY_FILTER" /> </component> <component name="DBNavigator.Project.EditorStateManager"> <last-used-providers /> diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 6690a74..280ac52 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,33 +4,13 @@ <option name="autoReloadType" value="SELECTIVE" /> </component> <component name="ChangeListManager"> - <list default="true" id="0d616560-06e0-45af-8dd9-ccab83963a0f" name="Changes" comment=""> - <change afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/dbnavigator.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/jpa-buddy.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/uiDesigner.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/Application.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/JpaService.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/abstractClasses/UniversityMember.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/classes/Course.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/classes/CoursesOfStudy.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/classes/Enrollment.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/classes/Lecturer.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/classes/Student.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/enumeration/CourseType.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/enumeration/Degree.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/enumeration/ExamType.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/enumeration/FieldOfStudy.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/enumeration/Gender.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/enumeration/Mark.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/enumeration/Semester.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/enumeration/Status.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/interfaces/Calculable.java" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/src/main/resources/META-INF/persistence.xml" afterDir="false" /> + <list default="true" id="0d616560-06e0-45af-8dd9-ccab83963a0f" name="Changes" comment="Hibernate ORM for DB"> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/main/Application.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/Application.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/main/classes/Course.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/classes/Course.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/main/classes/CoursesOfStudy.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/classes/CoursesOfStudy.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/main/classes/Enrollment.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/classes/Enrollment.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/main/classes/Lecturer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/classes/Lecturer.java" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> @@ -117,6 +97,14 @@ <option name="presentableId" value="Default" /> <updated>1654440427551</updated> </task> + <task id="LOCAL-00001" summary="Hibernate ORM for DB"> + <created>1655210036433</created> + <option name="number" value="00001" /> + <option name="presentableId" value="LOCAL-00001" /> + <option name="project" value="LOCAL" /> + <updated>1655210036433</updated> + </task> + <option name="localTasksCounter" value="2" /> <servers /> </component> <component name="Vcs.Log.Tabs.Properties"> @@ -132,5 +120,7 @@ </component> <component name="VcsManagerConfiguration"> <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" /> + <MESSAGE value="Hibernate ORM for DB" /> + <option name="LAST_COMMIT_MESSAGE" value="Hibernate ORM for DB" /> </component> </project> \ No newline at end of file diff --git a/src/main/Application.java b/src/main/Application.java index 884813c..9241b49 100644 --- a/src/main/Application.java +++ b/src/main/Application.java @@ -1,6 +1,8 @@ import classes.*; import enumeration.*; +import java.time.Duration; + /** * Defines the entry point of the Java application. */ @@ -14,9 +16,15 @@ public class Application { jpaService.runInTransaction(entityManager -> { // name, semester, courseType, sws, ects, examType, isCredited - entityManager.persist(new Course("Numerische Methoden", Semester.SIXTH.getSemester(), CourseType.REQUIRED.getCourseType(), 4, 5, ExamType.WRITTEN.getExamType(), null)); - entityManager.persist(new Course("Echtzeitsysteme", Semester.SIXTH.getSemester(), CourseType.REQUIRED.getCourseType(), 4, 5, ExamType.WRITTEN.getExamType(), null)); - entityManager.persist(new Course("Digitale Signalverarbeitung", Semester.SIXTH.getSemester(), CourseType.REQUIRED.getCourseType(), 4, 5, ExamType.WRITTEN.getExamType(), null)); + //entityManager.persist(new Course("Numerische Methoden", Semester.SIXTH.getSemester(), CourseType.REQUIRED.getCourseType(), 4, 5, ExamType.WRITTEN.getExamType(), null)); + //entityManager.persist(new Course("Echtzeitsysteme", Semester.SIXTH.getSemester(), CourseType.REQUIRED.getCourseType(), 4, 5, ExamType.WRITTEN.getExamType(), null)); + //entityManager.persist(new Course("Digitale Signalverarbeitung", Semester.SIXTH.getSemester(), CourseType.REQUIRED.getCourseType(), 4, 5, ExamType.WRITTEN.getExamType(), null)); + //int id, String name, String degree, int duration, int fees, String fieldOfStudy + CoursesOfStudy coursesOfStudy = new CoursesOfStudy("Angewandte Informatik", Degree.BACHELOR_OF_SCIENCE.getDegree(), 7, 62, FieldOfStudy.B_ACS_EMBEDDED_SYSTEMS.getFieldOfStudy()); + + coursesOfStudy.addCourse(new Course("Systemprogrammierung", Semester.SIXTH.getSemester(), CourseType.REQUIRED.getCourseType(), 4, 5, ExamType.WRITTEN.getExamType(), null)); + + entityManager.persist(coursesOfStudy); return null; }); diff --git a/src/main/classes/Course.java b/src/main/classes/Course.java index d15ffe6..d44236f 100644 --- a/src/main/classes/Course.java +++ b/src/main/classes/Course.java @@ -2,7 +2,6 @@ package classes; import jakarta.persistence.*; import java.util.Objects; -import java.util.Set; @Entity @Table(name = "Kurs") @@ -147,4 +146,9 @@ public class Course { isCredited = credited; } + + public void setCoursesOfStudy(CoursesOfStudy coursesOfStudy) + { + this.coursesOfStudy = coursesOfStudy; + } } diff --git a/src/main/classes/CoursesOfStudy.java b/src/main/classes/CoursesOfStudy.java index b1a2269..5d16076 100644 --- a/src/main/classes/CoursesOfStudy.java +++ b/src/main/classes/CoursesOfStudy.java @@ -35,20 +35,28 @@ public class CoursesOfStudy cascade = CascadeType.ALL, orphanRemoval = true ) - private List<CoursesOfStudy> courses = new ArrayList<>(); + private List<Course> courses = new ArrayList<>(); + @ManyToOne + @JoinColumn(name = "courses_of_study_id") + private CoursesOfStudy coursesOfStudy; + public CoursesOfStudy getCoursesOfStudy() { + return coursesOfStudy; + } + + /* @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "courses_of_study_id") private CoursesOfStudy coursesOfStudy; + */ public CoursesOfStudy() { } - public CoursesOfStudy(int id, String name, String degree, int duration, int fees, String fieldOfStudy) + public CoursesOfStudy(String name, String degree, int duration, int fees, String fieldOfStudy) { - this.id = id; this.name = name; this.degree = degree; this.duration = duration; @@ -71,16 +79,6 @@ public class CoursesOfStudy return Objects.hash(id); } - public CoursesOfStudy getCoursesOfStudy() - { - return coursesOfStudy; - } - - public void setCoursesOfStudy(CoursesOfStudy coursesOfStudy) - { - this.coursesOfStudy = coursesOfStudy; - } - public int getId() { return id; @@ -141,15 +139,15 @@ public class CoursesOfStudy this.fieldOfStudy = fieldOfStudy; } - /*public void addComment(Course course) + public void addCourse(Course course) { courses.add(course); - course.setCourse(this); + course.setCoursesOfStudy(this); } - public void removeComment(Course course) + public void removeCourse(Course course) { courses.remove(course); - course.setCourse(this); - }*/ + course.setCoursesOfStudy(null); + } } diff --git a/src/main/classes/Enrollment.java b/src/main/classes/Enrollment.java index 8569fba..64f7c89 100644 --- a/src/main/classes/Enrollment.java +++ b/src/main/classes/Enrollment.java @@ -24,6 +24,7 @@ public class Enrollment @Column(name = "Datum der Anmeldung") private LocalDateTime enrollmentDate; + @Column(name = "Note") private double grade; public Enrollment() diff --git a/src/main/classes/Lecturer.java b/src/main/classes/Lecturer.java index f6a8ae4..f067a1f 100644 --- a/src/main/classes/Lecturer.java +++ b/src/main/classes/Lecturer.java @@ -9,7 +9,7 @@ import jakarta.persistence.Table; @Table(name = "Dozent") public class Lecturer extends UniversityMember { - @Column(name = "Fakultät") + @Column(name = "Fakultaet") String faculty; public Lecturer() -- GitLab