Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.02.2021, 18:06
|
|||
---|---|---|---|
|
|||
Hibernate JPQL зарезервированные слова |
|||
#18+
Следующий код: Код: java 1. 2. 3. 4. 5. 6. 7.
падает с исключением: Код: java 1. 2.
Причина здесь: select distinct a, b from by.xxx.xxxxxxxxxx.xxxxxxx.xxxxxxxxxxxx.Person a, by .xxx.xxxxxxxxxx.xxxxxxx.xxxxxxxxxxxx.Phone b Имя пакета, где лежат энтити, начинается с "by". Можно ли обойтись без переименования пакета? Есть ли какие экранирующие конструкции? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 19:16
|
|||
---|---|---|---|
|
|||
Hibernate JPQL зарезервированные слова |
|||
#18+
faustgreen, Вы проверили переименовав пакет и ошибка ушла? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 19:53
|
|||
---|---|---|---|
|
|||
Hibernate JPQL зарезервированные слова |
|||
#18+
PetroNotC Sharp, Да, переименовал в bby .xxx.xxxxxxxxxx.xxxxxxx.xxxxxxxxxxxx - все ок. Причем, если из запроса убрать вторую энтити, то все отработает норм даже с пакетом by.xxx.xxxxxxxxxx.xxxxxxx.xxxxxxxxxxxx: Код: java 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 19:57
|
|||
---|---|---|---|
|
|||
Hibernate JPQL зарезервированные слова |
|||
#18+
Только сейчас заметил, в первом посте запрос и сообщение об ошибке немного не совпадают (лог ошибки взял из другого примера). Но это сути не менят, там все аналогично. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 21:55
|
|||
---|---|---|---|
Hibernate JPQL зарезервированные слова |
|||
#18+
Коллизия имен и резервированных слов - обычное дело в SQL. Поэтому и делают SQL-билдеры. Попробуй закрыть этот by кавычками (" quotes) как делают в 99% SQL или еще есть вариант - обратный апостроф (`) (как в PrestoDb /BigData). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 22:29
|
|||
---|---|---|---|
|
|||
Hibernate JPQL зарезервированные слова |
|||
#18+
mayton, попробовал прау вариантов с кавычками - не работает, да и не до конца понятно что экранировать. запрос выглядит так: Код: java 1. 2. 3. 4. 5. 6. 7.
А в логе вместо коротких имен классов, полные. Видимо это хибер их внутри преобразует. Если сделать, что то типо такого Код: java 1. 2. 3. 4. 5. 6. 7.
, то получаем unexpected token 'Person'. Вариант с Код: java 1. 2. 3. 4. 5. 6. 7.
тоже не прокатил. Вообщем, переименовал пока пакет, на будещее учту. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 22:35
|
|||
---|---|---|---|
Hibernate JPQL зарезервированные слова |
|||
#18+
Во первых не прямой а обратный апостроф. Hex code 0x60. Во вторых где у тебя там ключевое слово BY (ORDER BY) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 23:00
|
|||
---|---|---|---|
|
|||
Hibernate JPQL зарезервированные слова |
|||
#18+
mayton, По первому вопросу: Код: java 1. 2. 3. 4.
По второму вопросу: Может "by" отдельно и не зарезервированное поле, но лог ошибки указывает именно на него: unexpected token: by near line 1, column 83 (начало имени пакета для второй энтити). Хотя может ошибка и совем не в этом, хз. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 23:16
|
|||
---|---|---|---|
Hibernate JPQL зарезервированные слова |
|||
#18+
Ну проверь. Создай таблицу с названием "by" или поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 23:16
|
|||
---|---|---|---|
|
|||
Hibernate JPQL зарезервированные слова |
|||
#18+
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: by near line 1, column 84 Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 23:31
|
|||
---|---|---|---|
|
|||
Hibernate JPQL зарезервированные слова |
|||
#18+
Поигрался с именем пакета: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Видимо, что то связано с внутренними алгоритмами парсера sql-строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 23:46
|
|||
---|---|---|---|
Hibernate JPQL зарезервированные слова |
|||
#18+
Попробуй пересоздай пакет с именем в кавычках Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.02.2021, 00:00
|
|||
---|---|---|---|
|
|||
Hibernate JPQL зарезервированные слова |
|||
#18+
mayton, не понял .... символ {"} вроде ж нельзя использовать в имени пакета. А если кавычки добавить в запрос, то unexpected char '"' Вообщем ладно, пакет переименовал, заработало, ну и ок (проект учебный, так что сойдет). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.02.2021, 09:11
|
|||
---|---|---|---|
|
|||
Hibernate JPQL зарезервированные слова |
|||
#18+
Zzz79, пример из официальной доки по хиберу. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=59&tablet=1&tid=2120520]: |
0ms |
get settings: |
24ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
289ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 412ms |
0 / 0 |