Вопрос по – Возможен ли подзапрос JPA в предложении FROM?

3

У меня небольшая проблема с JPA. Рассмотрим этот сценарий:

Table A (id_a) | Table B (id_b, id_a)

Мне нужен такой запрос:

Select a.*, c.quantity from A as a, (Select Count(*) as quantity 
from B as b where b.id_a = a.id_a) as c;

Дело в том, что я хочу использовать запрос jpa, а не собственный запрос, что-то вроде этого:

Select a, c FROM A a, (Select Count(b) FROM B b where a.idA = b.a.idA) c;

Тогда я мог бы перебрать результат (список Object [] с a и c в каждом узле) и затем назначить a.quantity = c;

Я повторяю, я не хочу использовать собственный запрос, но я не нашел другого способа, кроме как использовать избыточные данные, и добавить в A еще один столбец с именем Количество, и каждый раз, когда я вставляю и удаляю из B, обновляю этот столбец в A.

Пожалуйста, помогите, я где-то читал, что JPA не принимает подзапросы в условии Form, так что я могу сделать?

Большое спасибо !

Ваш Ответ

1   ответ
2

но в текущих сборках EclipseLink 2.4 эта поддержка есть.

Увидеть, http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Sub-selects_in_FROM_clause

Вы, вероятно, можете переписать запрос, просто используя обычные объединения.

Может быть,

Select a, size(a.bs) from A a

или же

Select a, count(b) from A a join a.bs b group by a
Большое спасибо за ответ ! Я проверю это, как только вернусь домой. oriuken
Error: User Rate Limit Exceeded oriuken

Похожие вопросы