Ajuda Spring + Hibernate + Criteria

2 respostas
fabioebner

Pessoal estou comecando agora a mexer com spring + hibernate = criteria… e estou com algumas duvidas. por exemplo fiz o seguinte:

DetachedCriteria criteria = DetachedCriteria.forClass(TbLeilao.class); criteria.add(Expression.ge("dtLeilao", data)); List<TbLeilao> leilaoes = hibernateTemplate.findByCriteria(criteria);

porem nao tem como eu fazer um find q me retorne sempre 1 resultado? pq os find so tem result e se eu tiver certeza q vai ser sempre 1 unico resultado tenho q receber uma lista, e depois pegar o primeiro, etc ,etc

e alguem tem um tutorial ou algum lugar q possa ler sobre essa integracao?

valeu

2 Respostas

G

Com o Spring não, pelo menos não na 2.x. Quem sabe na 3x possua. O Hibernate possui Criteria.uniqueResult, porém como o Spring faz uma wrapper da camada do Hibernate não há como chamar esse método, a menos que você faça um callback.

Mas nada te impede de fazer algo assim:

DetachedCriteria criteria = DetachedCriteria.forClass(TbLeilao.class);  
criteria.add(Expression.ge("dtLeilao", data));  
List<TbLeilao> leilaoes = hibernateTemplate.findByCriteria(criteria);  

if (leilaoes.isEmpty()) { // não veio results
    return null; // pode ser uma exception
}

return leilaoes.get(0); // retorna o primeiro
bigjoe

Existe o uniqueResult: https://www.hibernate.org/hib_docs/v3/api/org/hibernate/Criteria.html#uniqueResult()

Criado 26 de outubro de 2009
Ultima resposta 26 de out. de 2009
Respostas 2
Participantes 3