如何将jpql查询迁移到Criteria API

时间:2011-10-19 14:22:13

标签: java-ee jpa criteria-api

请在jpql中进行此查询我想迁移到条件。我怎么样?

查询:

SELECT c FROM Cartera c,Cliente cli WHERE c.aseId = :aseId and cli.aseId=c.aseId

由于

2 个答案:

答案 0 :(得分:1)

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Cartera> query = cb.createQuery(Cartera.class);
Root<Cartera> cartera = query.from(Cartera.class);
Root<Cliente> cliente = query.from(Cliente.class);
query.select(cartera);
query.where(cb.equal(cartera.get(Cartera_.aseId), theAseId),
            cb.equal(cliente.get(Cliente_.aseId), theAseId));

应该做的伎俩。但是没有经过测试。

答案 1 :(得分:0)

在JB Nizet的回答之后,您还必须拥有

TypedQuery<Cartera> tq = em.createQuery(query);
tq.setFirstResult( offset );  // how many records to skip 
tq.setMaxResults( pageSize);  // don't want to fetch a million records
List<Cartera> list = tq.getResultList();