Если я использую 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-ограничение (как ON-ограничение в SQL) для равенства идентификаторов между обеими таблицами (сущностями)? Из-за декартова произведения обеих таблиц?
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.