2014-09-08 2 views
1

Я хочу построить запрос с использованием JPA 2 CriteriaBuilder:JPA 2 CriteriaBuilder Регистрация без отношений

SELECT part_new.*, pn_old.pnumber FROM Part part_new 
JOIN Partnumber pn_new ON part_new.fk_partnumber = pn_new.id 
JOIN Partnumber pn_old ON pn_new.pnumber = pn_old.pnumber 
JOIN Part part_old ON part_old.fk_partnumber = pn_old.id 
WHERE part_old.available=0 AND pn_old.pnumber IN('foo', 'bar') 

Там нет JPA отношений на Partnumber.pnumber, это просто обычная строка собственность. (строка 3 в коде выше). Можно ли построить этот запрос с помощью JPA 2 QueryBuilder?

ответ

0

У него есть: подразумевается соединение (cb.equal).

+0

Слишком плохо, что вы не дали немного больше кода в качестве примера ... Я борюсь с этим сам, но ваш ответ не очень помогает. –

+0

Giventhe факт, что у вас есть некоторые базовые знания о запросах критериев JPA, я не знаю, почему этот ответ не помогает. Просто добавьте ограничение в свой запрос, проверяя равенство свойств, к которым вы хотите присоединиться. Предоставление образца кода кажется бесполезным для меня, поскольку запросы критериев JPA используются в разных вариантах (с метамоделью или без нее). –

+0

Я понял это сейчас. Я получил, что мне нужно добавить «Ограничение», но не так очевидно, что 'cb.equal' должен объединить два разных' Root'. И, конечно, если вы уже знаете это, это всегда кажется очевидным :) –

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

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