DetacheCriteria - Retornas lista de Roteiro

4 respostas
J

Pessoal é possível retornar uma lista de Roteiro?

public List<Roteiro> listarRoteiroCidades(Date data1, Date data2,
		String vendedor, String codigo_vendedor, String cidade) {
	List<Roteiro> list = new ArrayList<Roteiro>();
	//Session session = hibernateTemplate.getSessionFactory().getCurrentSession();
		
	DetachedCriteria criteria = DetachedCriteria.forClass(Roteiro.class);
	criteria.add(Restrictions.ge("data_visita", data1));   
	criteria.add(Restrictions.le("data_visita", data2));
	
	criteria.setProjection(Projections.projectionList()
			.add(Projections.property("data_visita"))		
			              );
	
	criteria.addOrder(Order.desc("municipio"));		
	criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);	
	
	//return criteria.getExecutableCriteria(session).list();
	return list;
}

Não estou conseguindo retornar uma lista de Objetos. Nâo conheço muito bem o uso de criteria, uso frequentemente “criteria”.

4 Respostas

tumvoodoo

Seria isso o que você perguntou ?

public T getUniqueResult(DetachedCriteria criteria){
        List&lt;T&gt; l = hibernateTemplate.findByCriteria(criteria);

        if ((l == null) || (l != null && l.isEmpty())) {
            return null;
        }

        return l.get(0);
    }

edit: Estou usando HibernateTemplate do Spring

J

Eu também estou usando HibernateTemplate do Spring.

Vou tentar aqui!

Obrigado.

J

Como é o funcionamento da detached criteria.

Pra mim ele retornar objetos do tipo Roteiro ->>>> DetachedCriteria.forClass(Roteiro.class);

tumvoodoo

Isso, é com o forClass() mesmo.

edit:

Se a query que você estiver montando possuir associação com outra tabelas(entidades), precisa fazer com que a sua criteria crie uma outra criteria, ex:

List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like("name", "F%") )
    .createCriteria("kittens")
        .add( Restrictions.like("name", "F%") )
    .list();


http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html

Criado 24 de maio de 2012
Ultima resposta 24 de mai. de 2012
Respostas 4
Participantes 2