| 
 | 
| 
 
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, 18:06 | 
  
  
  
   | 
||
| 
 
Hibernate JPQL зарезервированные слова 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  faustgreen, Вы проверили переименовав пакет и ошибка ушла? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.02.2021, 19:16 | 
  
  
  
   | 
||
| 
 
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:53 | 
  
  
  
   | 
||
| 
 
Hibernate JPQL зарезервированные слова 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Только сейчас заметил, в первом посте запрос и сообщение об ошибке немного не совпадают (лог ошибки взял из другого примера). Но это сути не менят, там все аналогично. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.02.2021, 19:57 | 
  
  
  
   | 
||
| 
 
Hibernate JPQL зарезервированные слова 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Коллизия имен и резервированных слов - обычное дело в SQL. Поэтому и делают SQL-билдеры. Попробуй закрыть этот by кавычками (" quotes) как делают в 99% SQL или еще есть вариант - обратный апостроф (`) (как в PrestoDb /BigData). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.02.2021, 21:55 | 
  
  
  
   | 
||
| 
 
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:29 | 
  
  
  
   | 
||
| 
 
Hibernate JPQL зарезервированные слова 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Во первых не прямой а обратный апостроф. Hex code 0x60. Во вторых где у тебя там ключевое слово BY (ORDER BY) ? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.02.2021, 22:35 | 
  
  
  
   | 
||
| 
 
Hibernate JPQL зарезервированные слова 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mayton,  По первому вопросу: Код: java 1. 2. 3. 4. По второму вопросу: Может "by" отдельно и не зарезервированное поле, но лог ошибки указывает именно на него: unexpected token: by near line 1, column 83 (начало имени пакета для второй энтити). Хотя может ошибка и совем не в этом, хз. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.02.2021, 23:00 | 
  
  
  
   | 
||
| 
 
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:16 | 
  
  
  
   | 
||
| 
 
Hibernate JPQL зарезервированные слова 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Поигрался с именем пакета: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Видимо, что то связано с внутренними алгоритмами парсера sql-строки. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.02.2021, 23:31 | 
  
  
  
   | 
||
| 
 
Hibernate JPQL зарезервированные слова 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Попробуй пересоздай пакет с именем в кавычках  Код: java 1. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.02.2021, 23:46 | 
  
  
  
   | 
||
| 
 
Hibernate JPQL зарезервированные слова 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mayton, не понял .... символ {"} вроде ж нельзя использовать в имени пакета. А если кавычки добавить в запрос, то unexpected char '"' Вообщем ладно, пакет переименовал, заработало, ну и ок (проект учебный, так что сойдет). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.02.2021, 00:00 | 
  
  
  
   | 
||
| 
 
Hibernate JPQL зарезервированные слова 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Zzz79, пример из официальной  доки  по хиберу. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.02.2021, 09:11 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=59&msg=40046936&tid=2120520]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    65ms | 
get topic data:  | 
    8ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    53ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 265ms | 
| total: | 421ms | 

| 0 / 0 | 
