package ciai.model; import java.util.Set; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.OneToOne; import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonView; import ciai.view.Views; @Entity public class Student { @Id @GeneratedValue(strategy = GenerationType.AUTO) @JsonView(Views.StudentView.class) private Long id; @JsonView(Views.StudentView.class) private String name; @JsonView(Views.StudentView.class) private int number; @JsonView(Views.StudentView.class) private String photo; @JsonView(Views.StudentView.class) private String personalEmail; @JsonView(Views.StudentView.class) private String universityEmail; @JsonView(Views.StudentView.class) private String address; @JsonView(Views.StudentView.class) private String birthday; @ManyToOne @JoinColumn(name = "degree_id") @JsonView(Views.StudentView.class) @JsonManagedReference private Degree degree; @OneToOne @JoinColumn(name = "account_id") private Account account; @ManyToMany(mappedBy = "students", fetch = FetchType.EAGER) private Set editions; public Student() { } public Student(String name, Account account, int number) { this.setName(name); this.setUniversityEmail(account.getUsername()); this.setAccount(account); this.setNumber(number); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public String getPhoto() { return photo; } public void setPhoto(String photo) { this.photo = photo; } public String getPersonalEmail() { return personalEmail; } public void setPersonalEmail(String personalEmail) { this.personalEmail = personalEmail; } public String getUniversityEmail() { return universityEmail; } public void setUniversityEmail(String universityEmail) { this.universityEmail = universityEmail; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public Degree getDegree() { return degree; } public void setDegree(Degree degree) { this.degree = degree; } public Account getAccount() { return account; } public void setAccount(Account account) { this.account = account; } public Set getEditions() { return editions; } public void setEditions(Set editions) { this.editions = editions; } }