Como usar Criteria em Hibernate?

3 respostas
vanzella

Ola pessoal, to apanhando pra utilizar criteria do hibernate, preciso comparar três valores em uma consulta, como faria isso?

Estou utilizando da seguinte forma:

public Ocorrencia findOcorrencia(Ocorrencia ocorrencia)
	{
		try
		{
			Session session = HibernateUtil.getSession();
			Criteria select = session.createCriteria(Ocorrencia.class);
			select.add(Restrictions.ge("cadcod", ocorrencia.getCadcod()));
			select.add(Restrictions.ge("ocrdat", ocorrencia.getOcrdat()));
			select.add(Restrictions.ge("ocrnum", ocorrencia.getOcrnum()));
			ocorrencia = (Ocorrencia) select.uniqueResult();	
		}
		catch(HibernateException e1)
		{
			HibernateUtil.aborta();
		}
		return ocorrencia;	
	}

adicionei três restrições, mas como resultado tenho só a primeira restrição valida.
Att…

3 Respostas

julianoeustaquio

Vc esta pedido para ter somente um resultado.

Retorne seu resultado para um “List”, e depois manipule.

vanzella

Ola julianoeustaquio, obrigado pela ajuda, realmente eu quero só um resultado, os 3 parametros que eu estou criando as criterias são chaves compostas, meu resultado é unico mesmo!

Abraço…

vanzella

Resolvido o problema, pra quem tiver a mesma duvida ai esta a solução.

public Ocorrencia findOcorrencia(Ocorrencia ocorrencia)
	{
		try
		{
			Session session = HibernateUtil.getSession();
			Criteria criteria = session.createCriteria(Ocorrencia.class);
			criteria.add(Restrictions.eq("cadcod", ocorrencia.getCadcod())).add(
					Restrictions.eq("ocrdat", ocorrencia.getOcrdat()))
						.add(Restrictions.eq("ocrnum", ocorrencia.getOcrnum()));
			
			ocorrencia = (Ocorrencia) criteria.uniqueResult();	
		}
		catch(HibernateException e1)
		{
			HibernateUtil.aborta();
		}
		return ocorrencia;	
	}
Criado 25 de janeiro de 2007
Ultima resposta 26 de jan. de 2007
Respostas 3
Participantes 2