package de.thdeg.grademanager.model; import jakarta.persistence.*; import java.util.*; @Entity @Table(name = "coursesOfStudy") public class CoursesOfStudy { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private int id; @Column(name = "name") private String name; @Column(name = "degree") private String degree; @Column(name = "duration") private int duration; @Column(name = "fees") private int fees; @Column(name = "field_of_study") private String fieldOfStudy; @OneToMany( mappedBy = "coursesOfStudy", cascade = CascadeType.ALL, orphanRemoval = true ) private List<Course> courses = new ArrayList<>(); @ManyToOne @JoinColumn(name = "courses_of_study_id") private CoursesOfStudy coursesOfStudy; public List<Course> getCourses() { return courses; } /* @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "courses_of_study_id") private CoursesOfStudy coursesOfStudy; */ public CoursesOfStudy() { } public CoursesOfStudy(String name, String degree, int duration, int fees, String fieldOfStudy) { this.name = name; this.degree = degree; this.duration = duration; this.fees = fees; this.fieldOfStudy = fieldOfStudy; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; CoursesOfStudy that = (CoursesOfStudy) o; return id == that.id; } @Override public int hashCode() { return Objects.hash(id); } @Override public String toString() { return name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDegree() { return degree; } public void setDegree(String degree) { this.degree = degree; } public int getDuration() { return duration; } public void setDuration(int duration) { this.duration = duration; } public int getFees() { return fees; } public void setFees(int fees) { this.fees = fees; } public String getFieldOfStudy() { return fieldOfStudy; } public void setFieldOfStudy(String fieldOfStudy) { this.fieldOfStudy = fieldOfStudy; } public void addCourse(Course course) { courses.add(course); course.setCoursesOfStudy(this); } public void removeCourse(Course course) { courses.remove(course); course.setCoursesOfStudy(null); } public void updateCourse(Course course){ int index = findCourseID(course); courses.set(index, course); } private int findCourseID(Course course){ for (int i = 0; i < courses.size(); i++) { if (courses.get(i).getId() == course.getId()){ return i; } } return -1; } }