【发布时间】:2015-05-04 15:02:31
【问题描述】:
如果我使用 Hibernate Criteria 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);
我是否需要使用 EQUAL-restriction(如 SQL 中的 ON-restriction)来使两个表(实体)之间的 ID 相等?因为两张表的笛卡尔积?
criteriaQuery.where(criteriaBuilder.equal(OneEntity.get("fk_id"), TwoEntity.get("id")));
我的意思是......在使用连接的 SQL 中,我们需要使用 on-clausule,例如:
select * from table_1 t1, table_2 t2 where t1.t2_id=t2.t1_id;
但我在 API Criteria 中找不到有关它的信息。
【问题讨论】:
标签: java hibernate postgresql-9.2 java-ee-7 jpa-2.1