@SuppressWarnings("unchecked")
public List<Conto> cercaContoByPianoDeiContiDataValidita(PianoDeiConti pianoDeiConti, Date dataRegistrazione)
throws ImpossibileCercareContoException {
DetachedCriteria criteria = DetachedCriteria.forClass(Conto.class);
Conjunction conj = Restrictions.conjunction();
conj.add(Restrictions.eq("contoId.legalEntity", legalEntity));
conj.add(Restrictions.eq("contoId.organizationUnit", organizationUnit));
conj.add(Restrictions.eq("pianoDeiConti.codiceGruppo", pianoDeiConti.getCodiceGruppo()));
conj.add(Restrictions.eq("pianoDeiConti.codiceMastro", pianoDeiConti.getCodiceMastro()));
conj.add(Restrictions.eq("pianoDeiConti.codiceConto", pianoDeiConti.getCodiceConto()));
conj.add(Restrictions.le("dataInizioValidita", dataRegistrazione));
Disjunction disj = Restrictions.disjunction();
disj.add(Restrictions.isNull("dataFineValidita"));
disj.add(Restrictions.ge("dataFineValidita", dataRegistrazione));
conj.add(disj);
criteria.add(conj);
try {
return (List<Conto>) getHibernateTemplate().findByCriteria(criteria);
} catch (DataAccessException e) {