如何使用Criteria API进行JOIN ON查询

问题描述:

从2.1版开始,JPA支持 join on 。我发现了几个示例,如何在JPQL中使用 join on ,而对于Criteria API却没有,这是我的问题:

Since version 2.1 JPA supports join on. I found few examples how to use join on in JPQL but none for Criteria API, and here is my question:



JOIN ON 是否在Criteria APi中实现?如果是的话,有人可以提供示例吗?

Is JOIN ON is implemented in Criteria APi? And if yes, Can anyone provide example?



尝试这样的事情

CriteriaQuery<Person> crit = cb.createQuery(Person.class);
Root<Person> candidateRoot = crit.from(Person.class);
Join<Person, Address> addrJoin = candidateRoot.join(Person_.address, JoinType.INNER);
addrJoin.on({some predicate});

在 {some predicate}中填充任何您要施加的ON子句。

filling "{some predicate}" with whatever ON clause you want to impose.