2016-09-06 8 views
1

Я хочу, чтобы запустить SQL:Jpa CriteriaQuery, как добавить много условий соединения?

select b.* from A a inner join B b on a.c = b.c where b.status = 1 ; 

теперь я должен делать это с помощью JPA CriteriaQuery, и я Хава получил (Root<A> root), A и B не имеет PK & FK, columu с есть FK А и B, так как это сделать?

CriteriaQuery aQuery= cb.createQuery(A.class); 
    Root<A> aRoot = aQuery.from(A.class); 

Тогда как это сделать?

ответ

0

Во-первых, JPQL does not allow joining to arbitrary other root objects, поэтому вы не можете сделать это в JPQL; только позволяя вам присоединиться к отношениям. Secondly Criteria просто поддерживает поддержку JPQL, поэтому вы также не можете сделать это в критериях.

Ближайший должен иметь второй корень и CROSS JOIN между ними или использовать расширения для поставщиков (но API-интерфейс Criteria API, скорее всего, не позволит таких расширений поставщиков, поскольку его API исправлен, поэтому вам, вероятно, придется использовать string-bsed JPQL).

 Смежные вопросы

  • Нет связанных вопросов^_^