【发布时间】:2011-12-10 23:41:03
【问题描述】:
请在 jpql 中有这个查询,我想迁移到标准。你是怎么做到的?
查询:
SELECT c FROM Cartera c,Cliente cli WHERE c.aseId = :aseId and cli.aseId=c.aseId
谢谢
【问题讨论】:
标签: jakarta-ee jpa criteria-api
请在 jpql 中有这个查询,我想迁移到标准。你是怎么做到的?
查询:
SELECT c FROM Cartera c,Cliente cli WHERE c.aseId = :aseId and cli.aseId=c.aseId
谢谢
【问题讨论】:
标签: jakarta-ee jpa criteria-api
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));
应该可以解决问题。不过没有测试。
【讨论】:
在 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();
【讨论】: