2
respostas

Consulta por atributo do atributo

Suponhamos que um produto tenha uma categoria, e uma categoria tivesse um atributo status ATIVO/INATIVO. Como eu faria para adicionar um critério onde eu consultaria apenas os produtos que tivessem categoria ATIVA?

if (!StringUtils.isEmpty(filtro.getStatusCategoria())) {
                criteria.add(Restrictions.eq("categoria.statusCategoria", filtro.getStatusCategoria());
                //criteria.add(Restrictions.eq("Como chamar?", filtro.getStatusCategoria());
            }
2 respostas

Do primeiro jeito já não serviu?

Como tinha feito antes não. Encontrei a solução que procurava neste artigo:

http://www.devmedia.com.br/hibernate-api-criteria-realizando-consultas/29627

Usando associação do criteria como no exemplo abaixo:

Criteria crit = session.createCriteria(Suplementos.class); Criteria prdCrit = crit.createCriteria("produtos"); prdCrit.add(Restrictions.gt("preco",new Double(25.0))); List results = crit.list();

onde preço seria suplementos.produto.preco.

Não sei se é a mais correta, mas funcionou.