标准API相关

时间:2013-03-07 13:16:17

标签: jpa jpa-2.0 criteria criteria-api

我一直在谷歌搜索,但不明白调用该方法的结果与javax.persistence.criteria.Subquery和Criteria API相关。

http://www.objectdb.com/api/java/jpa/criteria/Subquery/correlate_CollectionJoin_

这是来自Pro JPA2掌握Java Persistence API的书。

  

为此查询创建条件API查询定义时,我们   必须关联Project的employees属性然后将其加入   直接报告以计算平均工资。这个   示例还演示了Path的type()方法的用法   接口,以便进行类型的多态比较:

CriteriaQuery<Project> c = cb.createQuery(Project.class);
Root<Project> project = c.from(Project.class);
Join<Project,Employee> emp = project.join("employees");
Subquery<Number> sq = c.subquery(Number.class);
Join<Project,Employee> sqEmp = sq.correlate(emp);
Join<Employee,Employee> directs = sqEmp.join("directs");
c.select(project)
 .where(cb.equal(project.type(), DesignProject.class),
        cb.isNotEmpty(emp.<Collection>get("directs")),
        cb.ge(sq, cb.parameter(Number.class, "value")));

这条线做什么?
加入sqEmp = sq.correlate(emp);

1 个答案:

答案 0 :(得分:7)

它允许您访问主查询引用的员工,以便您可以在子查询中使用它及其表