Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / EJB/JPA (JPQL запрос) / 11 сообщений из 11, страница 1 из 1
21.01.2015, 15:37
    #38859814
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
Здравствуйте, уважаемые форумчане!
сталкивался проблемой при реализации JPQL запроса.

имеется две таблицы группы и абитуриенты(студенты) (связь между ними один ко многим), надо вывести количество абитуриентов (студентов) по группам.
З.Ы. SQL-запрос как бы работает
Код: plsql
1.
select g.shortName, count(a.idabiturient) as number_of_abits from Groups g, Abiturients a where a.idgroup = g.idgroup



теперь jpql-запрос:
Код: plsql
1.
select g.shortName, count(a.idabiturient) as number_of_abits from Groups g, Abiturients a where a.groups.idgroup = g.idgroup



выдает обшибку типа:

javax.ejb.EJBException: EJB Exception: ; nested exception is:
Exception [EclipseLink-6089] (Eclipse Persistence Services - 2.1.3.v20110304-r9073): org.eclipse.persistence.exceptions.QueryException
Exception Description: The expression has not been initialized correctly. Only a single ExpressionBuilder should be used for a query.
For parallel expressions, the query class must be provided to the ExpressionBuilder constructor, and the query's ExpressionBuilder must
always be on the left side of the expression.
Expression: [
Base demo.entity.Abiturients]; nested exception is: Exception [EclipseLink-6089] (Eclipse Persistence Services - 2.1.3.v20110304-r9073): org.eclipse.persistence.exceptions.QueryException
Exception Description: The expression has not been initialized correctly. Only a single ExpressionBuilder should be used for a query.
For parallel expressions, the query class must be provided to the ExpressionBuilder constructor, and the query's ExpressionBuilder must
always be on the left side of the expression.
Expression: [
Base demo.entity.Abiturients]
Local Exception Stack:
Exception [EclipseLink-6089] (Eclipse Persistence Services - 2.1.3.v20110304-r9073): org.eclipse.persistence.exceptions.QueryException
Exception Description: The expression has not been initialized correctly. Only a single ExpressionBuilder should be used for a query.
For parallel expressions, the query class must be provided to the ExpressionBuilder constructor, and the query's ExpressionBuilder must
always be on the left side of the expression.
Expression: [
Base demo.entity.Abiturients]

в чем проблема непонимаю... :(
...
Рейтинг: 0 / 0
21.01.2015, 20:01
    #38860100
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
нет ответов? неужели никто не пользуется с EJB/JPA? :(
...
Рейтинг: 0 / 0
21.01.2015, 20:58
    #38860130
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
А что гугл говорит по тексту ошибки?
https://bugs.eclipse.org/bugs/show_bug.cgi?id=300488
...
Рейтинг: 0 / 0
22.01.2015, 07:14
    #38860257
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
Blazkowicz,

спасибо за ссылку, но несовсем понятно... :(
...
Рейтинг: 0 / 0
22.01.2015, 08:59
    #38860293
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
...
Рейтинг: 0 / 0
22.01.2015, 09:42
    #38860334
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
0FD,

спасибо за ссылку, но тоже самое...

как я понимаю что пишу неправильный JPQL запрос...

кто нибудь может помоч с запросом
в SQL это все примерно вот так виглядет:
Код: plsql
1.
SELECT g.shortName, COUNT(a.idabiturient) AS number_of_abits FROM Groups g, Abiturients a WHERE a.idgroup = g.idgroup GROUP BY g.shortName



ещё один вариант:
Код: plsql
1.
SELECT g.shortName, COUNT(a.idabiturient) AS number_of_abits FROM Groups g LEFT JOIN Abiturients a ON a.idgroup = g.idgroup GROUP BY g.shortName



есть у кого варианты по реализации такого запроса в JPQL?
...
Рейтинг: 0 / 0
22.01.2015, 12:19
    #38860517
oneHalf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
Я может чего не догоняю - но если уже есть связь One-to-many, зачем в запросе a.groups.idgroup = g.idgroup?
Вы в курсе, что такое явное задание связи полностью противоречит концепции ORM? - другими словами, после слова where, должны идти критерии запроса, а не указание что с чем и как связано - это уже известно заранее, когда вы сущности связываете при помощи ORM.
А сейчас во всех ваших вариантах написано - масло масленое, а вода конечно водяная.
...
Рейтинг: 0 / 0
22.01.2015, 12:54
    #38860566
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
oneHalf,
можете объяснить как правильно реализовать такой запрос, и что бы ответ был типа такого рода:
shortName | number_of_abits |
-----------------------------
abc | 10 |
-----------------------------
def | 0 |
-----------------------------
asd | 15 |
------------------------------
и так далее...?
...
Рейтинг: 0 / 0
22.01.2015, 13:05
    #38860584
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
oneHalfА сейчас во всех ваших вариантах написано - масло масленое, а вода конечно водяная.

да но все они как бы на обычном sql'е работают как надо...
...
Рейтинг: 0 / 0
22.01.2015, 13:16
    #38860602
oneHalf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
Ну, наверное, типа так

select g.shortName, SIZE(g.abiturientsList) from Groups g

А вообще странный подход к общению на форуме - выцыганить точный ответ, абсолютно не попытавшись разобраться после наводящей информации куда копать. Ну да, каждому по его способностям и размеру лени.
...
Рейтинг: 0 / 0
22.01.2015, 13:41
    #38860632
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB/JPA (JPQL запрос)
oneHalfНу, наверное, типа так

select g.shortName, SIZE(g.abiturientsList) from Groups g
за это спасибо!
oneHalfА вообще странный подход к общению на форуме - выцыганить точный ответ, абсолютно не попытавшись разобраться после наводящей информации куда копать. Ну да, каждому по его способностям и размеру лени.
а на счет этого я с Вами не совсем согласен, т.к. во первых не давна начал разбираться с этой технологией, во вторых прежде чем суда писать довольно искал в интернете после которого не смог переварить столько инфы...
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / EJB/JPA (JPQL запрос) / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]