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

use*_*383 4 java jpa criteria-api jpa-2.1

由于 2.1 版 JPA 支持join on. 我发现了一些如何join on在 JPQL 中使用的示例,但没有用于 Criteria API,这是我的问题:

JOIN ON在 Criteria API 中实现的吗?如果是,任何人都可以提供示例吗?

Nei*_*ton 5

尝试这样的事情

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});
Run Code Online (Sandbox Code Playgroud)

用您想要施加的任何 ON 子句填充“{some predicate}”。