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.OneToOne; import com.fasterxml.jackson.annotation.JsonView; import ciai.view.Views; @Entity public class Professor { @Id @GeneratedValue(strategy = GenerationType.AUTO) @JsonView(Views.PublicView.class) private Long id; @JsonView(Views.PublicView.class) private String name; @JsonView(Views.PublicView.class) private String email; @JsonView(Views.PublicView.class) private String photo; @ManyToMany(mappedBy = "professors", fetch = FetchType.EAGER) private Set editions; @OneToOne @JoinColumn(name = "account_id") @JsonView(Views.ProfessorView.class) private Account account; public Professor() { } public Professor(String name, String email, Account account) { this.setName(name); this.setAccount(account); this.setEmail(email); } 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 String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Set getEditions() { return editions; } public void setEditions(Set editions) { this.editions = editions; } public Account getAccount() { return account; } public void setAccount(Account account) { this.account = account; } public String getPhoto() { return photo; } public void setPhoto(String photo) { this.photo = photo; } }