2010-03-02 4 views
2

У меня есть исключение, когда я создаю этот SQL-запрос EJB.Toplink Exception, что случилось?

Exception Description: Syntax error parsing the query [SELECT h FROM Busmodul h WHERE LOWER(h.modulNummer) LIKE :modulnummer AND h.einbauort.id = :einbauort_fk AND h.plattform.id = :plattform_fk ORDER BY TRIM(TRAILING '-' FROM CONCAT('0', h.modulNummer))], line 1, column 150: syntax error at [TRIM]. 
Internal Exception: line 1:150: expecting IDENT, found 'TRIM' 

В чем смысл IDENT. Любые идеи, что я делаю неправильно?

ответ

1

Предложение ORDER BY недействительно, вы не можете заказать значения или объекты для значений или объектов, не возвращенных предложением SELECT (см. Главу 4.9. ORDER BY. Параметр спецификации EJB 3.0 JPA).

BTW, я не мог найти упоминания об использовании функций SQL и агрегатных функций в предложении ORDER BY в главе Язык запросов спецификации EJB 3.0, поэтому я не знаю, поддерживается ли это.

+0

Jep спасибо. его просто не поддерживается. –

3

Я считаю, что первое, что нужно отметить, это то, что EJB-QL - это не то же самое, что SQL, даже если оно выглядит аналогичным, поэтому оно не всегда ведет себя так же, как можно было бы ожидать от SQL-запроса.

Хотя TRIM указан в спецификации EJB-QL, ORDER BY должен использовать что-то, возвращаемое оператором SELECT. В этом случае результат функции TRIM не является идентификатором, который может удовлетворять условию ORDER BY. От JPA Query Language Syntax section of the Java EE 5 Tutorial::

При использовании предложения ORDER BY предложение SELECT должно возвращать упорядочиваемый набор объектов или значений. Вы не можете заказать значения или объекты для значений или объектов, не возвращенных предложением SELECT.

Дополнительную информацию о языке запросов на Java Persistance можно найти в соответствующей главе раздела Java EE 5 Tutorial.

+0

-1: TRIM определен в EJB-QL (см. Спецификацию JPA или учебник по Java EE 5 http://java.sun.com/javaee/5/docs/tutorial/doc/bnbuf.html#bnbvo) –

+0

Вы правы, мой плохой. – Ophidian

+0

Удалено нисходящее движение –

 Смежные вопросы

  • Нет связанных вопросов^_^