package ciai.model; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.OneToMany; import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonView; import ciai.view.Views; @Entity public class Course { @Id @GeneratedValue(strategy = GenerationType.AUTO) @JsonView(Views.PublicView.class) private Long id; @JsonView(Views.PublicView.class) private String identifier; @JsonView(Views.PublicView.class) private String name; @JsonView(Views.PublicView.class) private String description; @JsonView(Views.PublicView.class) private int ects; @OneToMany(mappedBy = "course", cascade = CascadeType.ALL) @JsonView(Views.StudentView.class) @JsonBackReference private Set editions; @ManyToMany(mappedBy = "courses", fetch = FetchType.EAGER) private Set degrees; public Course() { } public Course(String identifier, String name, String description, int ects) { this.setIdentifier(identifier); this.setName(name); this.setDescription(description); this.setEcts(ects); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getIdentifier() { return identifier; } public void setIdentifier(String identifier) { this.identifier = identifier; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public int getEcts() { return ects; } public void setEcts(int ects) { this.ects = ects; } public Set getEditions() { return editions; } public void setEditions(Set editions) { this.editions = editions; } public Set getDegrees() { return degrees; } public void setDegrees(Set degrees) { this.degrees = degrees; } }