/** * */ package net.conselldemallorca.helium.core.model.dao; import java.util.List; import net.conselldemallorca.helium.core.model.hibernate.Consulta; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Component; /** * Dao pels objectes de tipus Consulta * * @author Limit Tecnologies <limit@limit.es> */ @Component public class ConsultaDao extends HibernateGenericDao<Consulta, Long> { public ConsultaDao() { super(Consulta.class); } public List<Consulta> findAmbEntorn(Long entornId) { return findByCriteria(Restrictions.eq("entorn.id", entornId)); } public List<Consulta> findAmbEntornIExpedientTipus(Long entornId, Long expedientTipusId) { return findByCriteria( Restrictions.eq("entorn.id", entornId), Restrictions.eq("expedientTipus.id", expedientTipusId)); } public List<Consulta> findAmbEntornIExpedientTipusOrdenat(Long entornId, Long expedientTipusId) { List<Consulta> consultes = findOrderedByCriteria( new String[] {"ordre"}, true, Restrictions.eq("entorn.id", entornId), Restrictions.eq("expedientTipus.id", expedientTipusId)); return consultes; } public Consulta findAmbEntornICodi( Long entornId, String codi) { List<Consulta> consultes = findByCriteria( Restrictions.eq("entorn.id", entornId), Restrictions.eq("codi", codi)); if (consultes.size() > 0) return consultes.get(0); return null; } public Consulta findAmbEntornExpedientTipusICodi( Long entornId, Long expedientTipusId, String codi) { List<Consulta> consultes = findByCriteria( Restrictions.eq("entorn.id", entornId), Restrictions.eq("expedientTipus.id", expedientTipusId), Restrictions.eq("codi", codi)); if (consultes.size() > 0) return consultes.get(0); return null; } public Consulta getAmbOrdre(Long expedientTipusId, int ordre) { return (Consulta)getSession().createQuery( "from " + " Consulta c " + "where " + " c.expedientTipus.id=? " + " and c.ordre=?"). setLong(0, expedientTipusId). setInteger(1, ordre). uniqueResult(); } public int getNextOrder(Long expedientTipusId) { Object result = getSession().createQuery( "select " + " max(c.ordre) " + "from " + " Consulta c " + "where " + " c.expedientTipus.id=?"). setLong(0, expedientTipusId).uniqueResult(); if (result == null) return 0; return ((Integer)result).intValue() + 1; } }