Как выполнить запрос JOIN ON с помощью Criteria API

Начиная с версии 2.1 JPA поддерживает join on. Я нашел несколько примеров использования join on в JPQL, но ни одного для Criteria API, и вот мой вопрос:

Реализован ли JOIN ON в Criteria APi? И если да, может ли кто-нибудь привести пример?


person user902383    schedule 29.06.2015    source источник
comment
errm javax.persistence.criteria.Join имеет метод on().   -  person Neil Stockton    schedule 29.06.2015
comment
@NeilStockton хм... кажется, мне нужны новые очки, спасибо, можете ли вы опубликовать пример, чтобы я мог принять ваш ответ   -  person user902383    schedule 29.06.2015


Ответы (1)


Попробуйте что-нибудь вроде этого

CriteriaQuery<Person> crit = cb.createQuery(Person.class);
Root<Person> candidateRoot = crit.from(Person.class);
Join<Person, Address> addrJoin = candidateRoot.join(Person_.address, JoinType.INNER);
addrJoin.on({some predicate});

заполнение "{some predicate}" любым предложением ON, которое вы хотите наложить.

person Neil Stockton    schedule 29.06.2015