| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Hibernate JPA и Bulk Update - ругается парсер JPQL |
| Автор: AJetman 29.8.2009, 12:48 | ||||
В приложении использую Hibernate JPA. Столкнулся со следующей проблемой. Имеем запрос на обновление данных:
Парсер Hibernate ругается на запрос, что присутствует неизвестный токен "ru" и запрос не отрабатывается. Включил дебаг и вижу следующее:
С точки зрения JPQL все абсолютно верно, а парсер ругается на название пакета моего Entity. Исходя из того, что в SQL в запросе DELETE еще присутствует FROM, то попытался добавить FROM и для нашего запроса... И все сработало на ура. Порылся в коде парсера Hibernate - он видимо написан на ANTLR, т.к. видно что чем-то класс сгенерирован. И действительно, оказалось, что просто UPDATE вывалится в ошибку, а UPDATE FROM отработает на ура.... Это баг в Hibernate или так задумано? Hibernate последний, по крайней мере из официальных репозитариев Maven'a. Крик души: я новичок в Java, но уже задолбался обходить различные глюки(недоработки) и рыться в Mailing List'aх... |
| Автор: Akeem 30.8.2009, 17:31 |
| Странно у меня при подобном запросе на MySQL проблем небыло. Update UserEntity работал без From |
| Автор: AJetman 31.8.2009, 01:49 | ||
В официальном описании JPQL тоже без From, конечно же. Это я просто обошел этот баг(или все же не баг) таким образом, посмотрев, как работает парсер. БД PostgreSQL, но это роли не играет. У меня в Maven подключена всего одна зависимость: hibernate-entitymanager-3.4.0.GA.jar, которая тянет за собой: hibernate-annotations-3.4.0.GA.jar hibernate-commons-annotations-3.1.0.GA.jar hibernate-core-3.3.0.SP1.jar Дошло, что можно попробовать подсунуть еще более свежий corе, если добавить свою зависимость на него. Попробую - отпишусь. |