package entity;
import java.util.List;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
@Entity
@Table(name = "DOCTORS")
@PrimaryKeyJoinColumn(name = "ID")
public class Doctor extends Person {
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinColumn(name = "TITLE_ID")
private Title title;
@OneToMany(mappedBy = "doctor")
private List<Visit> visits;
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE },targetEntity = Specialty.class)
@JoinTable(name = "DOCTORS_SPECIALTIES",joinColumns = @JoinColumn(name = "DOCTOR_ID"),inverseJoinColumns = @JoinColumn(name = "SPECIALTY_ID"))
private Set<Specialty> specialties;
public List<Visit> getVisits() {
return visits;
}
public void setVisits(List<Visit> visits) {
this.visits = visits;
}
public Set<Specialty> getSpecialties() {
return specialties;
}
public void setSpecialties(Set<Specialty> specialties) {
this.specialties = specialties;
}
public Title getTitle() {
return title;
}
public void setTitle(Title title) {
this.title = title;
}
}