|
|
|
Множественная агрегация с использованием JPA в одном запросе
|
|||
|---|---|---|---|
|
#18+
У меня есть таблица с элементами которые должны быть посчитаны на основе нескольких критериев Код: sql 1. 2. Теперь я хочу посчитать все элементы у которых field_A=1 и дополнительно все элементы у которых field_A=1 and field_B=2 для всех родителей В SQL я делаю это например так (можно использовать from (select) ) Код: sql 1. 2. 3. 4. 5. 6. Вопрос в том как подобное имплементировать с использованием JPA в JEE приложении. В моём понимании sub-queries не подерживаються JPA и я могу это сделать только с использованием native queries. Данные для теста Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 11:55 |
|
||
|
Множественная агрегация с использованием JPA в одном запросе
|
|||
|---|---|---|---|
|
#18+
Sasha3516, ОРМ для CRUD и простого маппинга. Где у вас первое и второе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 12:16 |
|
||
|
Множественная агрегация с использованием JPA в одном запросе
|
|||
|---|---|---|---|
|
#18+
Petro123, Вы хотите сказать ОРМ для подобных задач не применима? Тогда какое решение? использовать nativequery или делать два отдельных запроса через ОРМ и потом в java собирать всё вместе? Меня интересует как сделать правильно? Потому как данный пример будет использован много раз и если будет выбрана неправильная стратегия ошибок будет очень много ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 12:40 |
|
||
|
Множественная агрегация с использованием JPA в одном запросе
|
|||
|---|---|---|---|
|
#18+
Sasha3516.... или делать два отдельных запроса через ОРМ и потом в java собирать всё вместе? мне кажется это уж совсем как-то криво IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 13:03 |
|
||
|
Множественная агрегация с использованием JPA в одном запросе
|
|||
|---|---|---|---|
|
#18+
Sasha3516В моём понимании sub-queries не подерживаються JPA Лолшто? Вы убиваете во мне веру в JPA. Потому что подзапросы в Hibernate Criteria API я использовал лет 7 назад или даже больше. https://stackoverflow.com/a/4668015 Уверен что JPQL умеет так же. Но, в целом, я не считаю что CriteriaAPI это панацея. Если какие-то вычисления проще сделать на SQL и они не возвращают какие-то сложные структуры, то делайте на SQL в виде вьюх или функций. И держите рядом со структурой БД. Я не вижу в этом ничего зазорного. ORM имеет достаточно четкий круг проблем которые он решает - CRUD - Многочисленные ассоциации - Ленивость Эти 3 штуки это именно то что на SQL делать геморно, а на ORM просто. Но бывают и другие проблемы, которые проще решать на SQL. И когда SQL проще, то и делать на нем. Единственно что стоит обратить внимание на то что кэши не повлияют на ваше решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 13:27 |
|
||
|
Множественная агрегация с использованием JPA в одном запросе
|
|||
|---|---|---|---|
|
#18+
Sasha3516Petro123, Вы хотите сказать ОРМ для подобных задач не применима? Тогда какое решение? использовать nativequery или делать два отдельных запроса через ОРМ и потом в java собирать всё вместе? Меня интересует как сделать правильно? Потому как данный пример будет использован много раз и если будет выбрана неправильная стратегия ошибок будет очень много Нету правильно. Есть компромисс. Например, у вас Модель - дерево. А у оракла есть специально для дерева запросы. Потом у вас jpa а не хибер api. Значит вы планируете менять базы раз в неделю? Очень много ньюансов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 14:30 |
|
||
|
Множественная агрегация с использованием JPA в одном запросе
|
|||
|---|---|---|---|
|
#18+
Sasha3516, Вот для оракла пример его личного api Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2018, 14:40 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=47&tid=2122074]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 152ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...