package br.com.doctors.dao.administracao;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import br.com.caelum.vraptor.ioc.Component;
import br.com.doctors.dao.util.DaoImpl;
import br.com.doctors.modelo.administracao.Paciente;
import br.com.doctors.modelo.administracao.PerfilUsuario;
import br.com.doctors.modelo.agendamento.Agendamento;
/***
*
* @author Renato
*
*/
@Component
public class PacienteDao extends DaoImpl<Paciente> {
public PacienteDao(Session session) {
super(session, Paciente.class);
}
public Paciente busca(String nome){
Criteria criteria = getSession().createCriteria(Paciente.class).
add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE));
return (Paciente) criteria.uniqueResult();
}
public Paciente carregaPorPerfil(PerfilUsuario usuario) {
Criteria criteria = getSession().createCriteria(Paciente.class)
.createCriteria("perfil").add(Restrictions.idEq(usuario.getId()))
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
return (Paciente) criteria.uniqueResult();
}
}