Java Hibernate标准aPI Multiselect

Java Hibernate标准aPI Multiselect,java,hibernate,postgresql-9.2,java-ee-7,jpa-2.1,Java,Hibernate,Postgresql 9.2,Java Ee 7,Jpa 2.1,如果我使用Hibernate标准API,如: CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(); Root<OneEntity> entityOneRoot = criteriaQuery.from(OneEntity.class); Root<TwoEntity>

如果我使用Hibernate标准API,如:

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteriaQuery = criteriaBuilder.createQuery();
Root<OneEntity> entityOneRoot = criteriaQuery.from(OneEntity.class);
Root<TwoEntity> entityTwoRoot = criteriaQuery.from(TwoEntity.class);
criteriaQuery.multiselect(OneEntity, TwoEntity);
我是说。。。在使用join的SQL中,我们需要在子句上使用,如:

select * from table_1 t1, table_2 t2 where t1.t2_id=t2.t1_id;

但是我在API标准中找不到关于它的信息。

来自JPA 2.1规范,第4.4.5章:

内部联接可以通过使用笛卡尔函数隐式指定
FROM
子句中的乘积和
WHERE
条款在缺少联接条件的情况下,这将减少到 笛卡尔积

这种通用联接样式的主要用例是当一个联接 条件不涉及映射的外键关系 一个实体关系

例如:

从客户c、员工e中选择c,其中c.hatsize=e.shoesize

通常,使用这种样式的内部联接(也称为 θ连接)的典型性不如显式定义的连接 关系

由于JPQL的工作方式与Criteria API相同,因此在查询中需要相等的限制

select * from table_1 t1, table_2 t2 where t1.t2_id=t2.t1_id;