package br.com.doctors.modelo.administracao; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToMany; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; import com.google.common.base.Strings; import br.com.caelum.vraptor.validator.Validations; import br.com.doctors.modelo.agendamento.Agendamento; import br.com.doctors.modelo.util.TipoPerfil; /*** * * @author Renato * */ @Entity @Table(name="pacientes") public class Paciente extends Pessoa { @Id @GeneratedValue private Long id; @ManyToMany(fetch=FetchType.EAGER,cascade=CascadeType.PERSIST) private List<Convenio> convenios; @OneToMany(mappedBy="paciente",fetch=FetchType.LAZY) private List<Agendamento> agendamentos; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public List<Convenio> getConvenios() { return convenios; } public void setConvenios(List<Convenio> convenios) { this.convenios = convenios; } /*public Set<Convenio> getConvenios() { return convenios; } public void adicionaConvenio(Convenio convenio){ convenios.add(convenio); } public void removeConvenio(Convenio convenio){ convenios.remove(convenio); }*/ @Override public String toString() { return getId() + ":" + getNome() + ": " + getDataNascimento() + "- " + getPerfil(); } public List<Agendamento> getAgendamentos() { return agendamentos; } public void setAgendamentos(List<Agendamento> agendamentos) { this.agendamentos = agendamentos; } @Override public void setPerfil(PerfilUsuario perfil) { perfil.setTipo(TipoPerfil.ROLE_PACIENTE); super.setPerfil(perfil); } }