Entity Manager - создать запрос - вложенный выбор

Я пытаюсь выполнить следующее:

em.createQuery("SELECT processId FROM (SELECT processId FROM table_name WHERE processName like '%abcaccz%')")

Но я получаю:

Method threw 'java.lang.IllegalArgumentException' exception.
unexpected token: ( near line 1, column 23

Чего здесь не хватает? (Это работает в моей клиентской области БД).

Попробуйте добавить псевдоним после закрывающей скобки.

Gordon Linoff 19.05.2019 15:09

Пример, пожалуйста? В любом случае, это тоже не работает: em.createQuery("SELECT processId FROM (SELECT processId FROM table_name WHERE processName like '%abcaccz%') a")

Roni Koren Kurtberg 19.05.2019 15:09
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
457
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Правильный синтаксис:

em.createQuery("SELECT processId = (SELECT processId FROM table_name WHERE processName like '%abcaccz%') FROM table_name")

или:

em.createQuery("
  SELECT processId
    FROM table_name
    WHERE processId IN (SELECT processId
                           FROM table_name
                           WHERE processName like '%abcaccz%')")

Другие вопросы по теме