Busca Hibernate e Spring

Alguém sabe com posso fazer uma busca no oracle usando um filtro e datas?
eu tenho um filtro com nome, nomeContato, telefoneContato e situacao que são atributos de um entity e duas data.
assinatura do método:
public List findByFiltro(Orgao filtro, Date dataInicial, Date dataFinal)

estava pensando em fazer algo tipo:
listaOrgao = getHibernateTemplate().findByExample(filtro);

mas não sei como mecho com as datas ai no meio.

o outro jeito era montando a query na mão mais também ta meio complicado porque eu não sei fazer isso muito bem não, por que a pesquisa pode ser por qualquer um ou por todos os atributos.

Você pode fazer o seguinte :

public List<Orgao> findByFiltro(Orgao filtro, Date dataInicial, Date dataFinal) {
         DetachedCriteria criteria = DetachedCriteria.forClass(Object.class).add(
									Example.create(filtro).enableLike(MatchMode.ANYWHERE)
									.ignoreCase().setPropertySelector(this));
         criteria.add(Expression.gt("atributoDateDoObjetoOrgao", dataInicial));
         criteria.add(Expression.lt("atributoDateDoObjetoOrgao", dataFinal));
         return this.hibernateTemplate.findByCriteria(criteria);
}

Esta sua classe deve implementar PropertySelector

[]'s

Valeu marciobarroso me ajudou demais!!!
agora eh so fussar esse treco pra entender direito.