Java Hibernate标准aPI Multiselect
如果我使用Hibernate标准API,如: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>
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;