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?
Слишком плохо, что вы не дали немного больше кода в качестве примера ... Я борюсь с этим сам, но ваш ответ не очень помогает. –
Giventhe факт, что у вас есть некоторые базовые знания о запросах критериев JPA, я не знаю, почему этот ответ не помогает. Просто добавьте ограничение в свой запрос, проверяя равенство свойств, к которым вы хотите присоединиться. Предоставление образца кода кажется бесполезным для меня, поскольку запросы критериев JPA используются в разных вариантах (с метамоделью или без нее). –
Я понял это сейчас. Я получил, что мне нужно добавить «Ограничение», но не так очевидно, что 'cb.equal' должен объединить два разных' Root'. И, конечно, если вы уже знаете это, это всегда кажется очевидным :) –