Проверка JPA в Eclipse 2018/12 неисправна?- жалуется на ключевое слово LOWER - PullRequest
0 голосов
/ 03 марта 2019

В последней версии Eclipse проверка JPA, кажется, делает странные вещи.Он жалуется на следующее выражение:

lower expression

Ошибка говорит:

У выражения IN нет действительного левоговыражение.

На мой взгляд, это неправильно.Запрос работает, как и ожидалось, так что, похоже, это ошибка Eclipse, верно?Или у вас есть другая идея, почему возникает эта ошибка?

Я не уверен, что эта ошибка происходит из инструментов JBoss или непосредственно из проверки Eclipse.Я могу сказать, что именно этот валидатор:

Validator

1 Ответ

0 голосов
/ 22 июля 2019

По определению - это спецификация JPA , документ, также известный как JSR 338, - JPQL допускает такие функции, как LOWER(..).Они определены как «зарезервированные идентификаторы» (см. Раздел 4.4.1 Идентификаторы , стр. 172):

Ниже приведены зарезервированные идентификаторы:

ABS,ALL, AND, ANY, AS, ASC, AVG, МЕЖДУ, BIT_LENGTH [59], ОБА, BY, CASE, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, CONCAT, COUNT, CURRENT_DATE, CURRENT_TIME, DELETET__DURT, ПУСТОЙ, КОНЕЦ, ВХОД, ESCAPE, СУЩЕСТВУЕТ, ЛОЖЬ, ЛОЖЬ, ИЗ, ФУНКЦИЯ, ГРУППА, ВХОДЯ, В, ИНДЕКС, ВНУТРЕННИЙ, ЕСТЬ, СОЕДИНЯЙТЕСЬ, КЛЮЧ, ВЕДУЩАЯ, ВЛЕВО, ДЛИНА, КАК, НАЙТИ, НИЖЕ , MAX, MEMBER, MIN, MOD, NEW, NOT, NULL, NULLIF, OBJECT, OF, ON, OR, ORDER, OUTER, POSITION, ВЫБРАТЬ, УСТАНОВИТЬ, РАЗМЕР, НЕКОТОРЫЕ, SQRT, SUBSTRING, SUM, THEN, TRAILING, TREAT, TRIM, TRUE, TYPE, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE.

В разделе 4.6.17.2.1 Строковые функции , на странице 193f,функция LOWER(string_expression) описана более подробно.В документе спецификации JPA говорится:

Функции LOWER и UPPER преобразуют строку в нижний и верхний регистр соответственно, в зависимости от языкового стандарта базы данных.Они возвращают строку.

Как следствие, BNF языка запросов JPA определяет LOWER в качестве ключевого слова.

Заключение

Ошибка в Eclipse, соответствующих валидаторах запросов JPA или других инструментальных средствах представляется весьма вероятной для версий, которые вы установили.Возможно, вы захотите проверить систему отслеживания ошибок Eclipse или обновить ее до Eclipse 2019 +.

Надеюсь, это поможет.

-

¹ В версии 2.2 или в предыдущей версии 2.1 / 2.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...