Uso do criteria
Boa noite!
Estou com a seguinte sitação.
Tenho uma classe pai chamada empenho dentro de empenho tenho um a tributo de classe chamada mapa e outra chamanda fornecedor e dentro de mapa eu tenho outro atributo de classe chamado pad.
Eu tenho que fazer uma consulta que me traga todos os empenhos com os possiveis parametros:
data inico(Atributo da classe Mapa)
data final(Atributo da classe Mapa)
cnpj(Atributo da classe Fornecedor)
numero pad(Atributo da classe Pad)
Não conheço muito bem o criteria, sera que algem pode me dar uma luz
Estou com a seguinte sitação.
Tenho uma classe pai chamada empenho dentro de empenho tenho um a tributo de classe chamada mapa e outra chamanda fornecedor e dentro de mapa eu tenho outro atributo de classe chamado pad.
Eu tenho que fazer uma consulta que me traga todos os empenhos com os possiveis parametros:
data inico(Atributo da classe Mapa)
data final(Atributo da classe Mapa)
cnpj(Atributo da classe Fornecedor)
numero pad(Atributo da classe Pad)
Não conheço muito bem o criteria, sera que algem pode me dar uma luz
Ismael Oliveira
Curtidas 0
Respostas
Davi Costa
15/05/2012
é só usar um subcriteria para os atributos que não são diretos da classe, se quizer posta seu código que monta o criteria que ajudamos
att Davi
att Davi
GOSTEI 0
Ismael Oliveira
15/05/2012
Blz galera!
Consegui resolver da seginte forma:
Criteria criteria = novoCriteria();
criteria.createAlias(mapa, mapa);
criteria.add(Restrictions.between(mapa.inicioVigencia, entidade.getMapa().getInicioVigencia(), new Date()));
criteria.add(Restrictions.between(mapa.fimVigencia, new Date(), entidade.getMapa().getFimVigencia()));
criteria.createAlias(mapa.fornecedorVenedor, fornecedor);
criteria.add(Restrictions.eq(fornecedor.cnpj, entidade.getMapa().getFornecedorVenedor().getCnpj()));
criteria.createAlias(mapa.pad, pad);
criteria.add(Restrictions.eq(pad.codigoPad, entidade.getMapa().getPad().getCodigoPad()));
return consultar(criteria);
se alguém tiver alguma sugestão de melhoria será bem vindo.
Obrigado pela atenção!
Consegui resolver da seginte forma:
Criteria criteria = novoCriteria();
criteria.createAlias(mapa, mapa);
criteria.add(Restrictions.between(mapa.inicioVigencia, entidade.getMapa().getInicioVigencia(), new Date()));
criteria.add(Restrictions.between(mapa.fimVigencia, new Date(), entidade.getMapa().getFimVigencia()));
criteria.createAlias(mapa.fornecedorVenedor, fornecedor);
criteria.add(Restrictions.eq(fornecedor.cnpj, entidade.getMapa().getFornecedorVenedor().getCnpj()));
criteria.createAlias(mapa.pad, pad);
criteria.add(Restrictions.eq(pad.codigoPad, entidade.getMapa().getPad().getCodigoPad()));
return consultar(criteria);
se alguém tiver alguma sugestão de melhoria será bem vindo.
Obrigado pela atenção!
GOSTEI 0
Davi Costa
15/05/2012
Muito boa a iniciativa de postar sua solução.
Sucesso!
att Davi
Sucesso!
att Davi
GOSTEI 0