Como eu faço para buscar todos os Apontamentos cujo centroCusto tenha o atributo teste = 15 (Vide classes abaixo) ?
Tentei fazer assim, mas o hibernate ignora o meu Example:
Apontamentoapontamento=newApontamento();CentroCustocentroCusto=newCentroCusto();centroCusto.setTeste(newInteger(15));apontamento.setCentroCusto(centroCusto);Criteriac=secao.createCriteria(ProducaoApontamento.class);c.add(Example.create(apontamento));aList=c.list();System.out.println("Qtos objetos: "+aList.size());//====> Aki ele traz todos os registros do banco. O bicho ignora o meu Example
public class Apontamento {
private Long idApontamento;
private CentroCusto centroCusto;
private BigDecimal realizado;
// getters and setters
}
public class CentroCusto{
private Long idCentroCusto;
private Integer teste;
// getters and setters
}
Com a minha pouco experiencia com hibernate posso tentar te ajudar. Primeiro eu usaria um List para fazer a consulta, ja que seram alguns resultados !
Faria algo assim
List result = (List) session.createQuery("FROM Comentario c").list();
E nesse caso eu nao usaria o criteria e sim o Query para passar alguns paramentros na minha pesquisa !
Agora ja que vc quer passar um parametro, vc tem alguns formas, vou te exemplificar uma delas abaixo
List result = (List) session.createQuery("FROM Comentario c WHERE c.id = :id")
.setParameter("id", bean.getId()).list();
Com isso eu pego o id e faco a pesquisa e ai vc adapta ao que vc realmente quer !
Espero ter ajuda
Abs
M
Mauricio_Linhares
Tente assim:
Apontamento apontamento = new ProducaoApontamento();
CentroCusto centroCusto = new CentroCusto();
centroCusto.setTeste(new Integer(15));
apontamento.setCentroCusto(centroCusto);
List lista = secao.createCriteria(ProducaoApontamento.class).add( Example.create(apontamento) ).list();
L
lauronolasco
Criteria c = secao.createCriteria(ProducaoApontamento.class);
c.createCriteria("apontamento").createCriteria("centroCusto").add(Restrictions.eq("teste",15));
ai funciona tranquilo
V
vandinho
Caro amigo asdhfsd87623;
Gostaria de sua ajuda em um exemplo bem parecido com o que o amigo lhe descreveu neste tópico acima, preciso realizar uma consulta onde terei como parametros a regiao do pedido feito(isto está na sessão), com a regiao do cidadão logado no sistema.
Tens alguma sgestão?
Abaixo segue exemplo do meu DAO.
Obrigado
publicListgetLista(Stringmat,Stringid_regiao)throwsSQLException{Sessionsession=HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();ListListaPed;Stringhql=“select*frompedidowhereid_regiao=:id_regiaoandmat=:mat”;//String hql = “select * from pedido where id_regiao=? and mat=?”;Queryq=session.createQuery(hql);q.setParameter(“id_regiao”,id_regiao);q.setParameter(“mat”,mat);ListaPed=q.list();session.getTransaction().commit();returnListaPed;}
V
vandinho
Caro amigo asdhfsd87623;
Gostaria de sua ajuda em um exemplo bem parecido com o que o amigo lhe descreveu neste tópico acima, preciso realizar uma consulta onde terei como parametros a regiao do pedido feito(isto está na sessão), com a regiao do cidadão logado no sistema.
Tens alguma sgestão?
Abaixo segue exemplo do meu DAO.
Obrigado
publicListgetLista(Stringmat,Stringid_regiao)throwsSQLException{Sessionsession=HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();ListListaPed;Stringhql=“select*frompedidowhereid_regiao=:id_regiaoandmat=:mat”;//String hql = “select * from pedido where id_regiao=? and mat=?”;Queryq=session.createQuery(hql);q.setParameter(“id_regiao”,id_regiao);q.setParameter(“mat”,mat);ListaPed=q.list();session.getTransaction().commit();returnListaPed;}