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:
Apontamento apontamento = new Apontamento();
CentroCusto centroCusto = new CentroCusto();
centroCusto.setTeste(new Integer(15));
apontamento.setCentroCusto(centroCusto);
Criteria c = 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 !
Criteria c = secao.createCriteria(ProducaoApontamento.class);
c.createCriteria("apontamento").createCriteria("centroCusto").add(Restrictions.eq("teste",15));
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
public List getLista(String mat, String id_regiao) throws SQLException {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List ListaPed;
String hql = “select * from pedido where id_regiao=:id_regiao and mat=:mat”;
//String hql = “select * from pedido where id_regiao=? and mat=?”;
Query q = session.createQuery(hql);
q.setParameter(“id_regiao”, id_regiao);
q.setParameter(“mat”, mat);
ListaPed = q.list();
session.getTransaction().commit();
return ListaPed;
}
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
public List getLista(String mat, String id_regiao) throws SQLException {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List ListaPed;
String hql = “select * from pedido where id_regiao=:id_regiao and mat=:mat”;
//String hql = “select * from pedido where id_regiao=? and mat=?”;
Query q = session.createQuery(hql);
q.setParameter(“id_regiao”, id_regiao);
q.setParameter(“mat”, mat);
ListaPed = q.list();
session.getTransaction().commit();
return ListaPed;
}