JPA标准,其中计数>;0
我有两张桌子:JPA标准,其中计数>;0,jpa,criteria,jpa-2.1,Jpa,Criteria,Jpa 2.1,我有两张桌子: 客户 发票 客户有一个OneToMany关联,用于列出发票 我想使用CriteriaBuilder创建此选择: select ... from Client c where (select count(1) from Invoice i where i.id = c.invoiceId) > 0 我如何才能做到这一点?使用JPQL您可以使用: Query query = em.createQuery ("SELECT c FROM Clien
- 客户
- 发票
select
...
from
Client c
where
(select count(1) from Invoice i where i.id = c.invoiceId) > 0
我如何才能做到这一点?使用
JPQL
您可以使用:
Query query = em.createQuery
("SELECT c FROM Client c WHERE (SELECT COUNT(i) FROM Invoice i WHERE i.client= c) > 0");
List<Client> clientc=query.getResultList());
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Client> q = cb.createQuery(Client.class);
Root<Client> client = q.from(Client.class);
q.select(client);
Subquery<Invoice> sq= q.subquery(Invoice.class);
Root<Invoice> invoice= sq.from(Invoice.class);
sq.select(invoice);
Predicate sqp = cb.equal(client.get("id"), invoice.get("invoiceId"));
sq.where(sqp);
q.where(cb.exists(sq));