Я думаю, что первое, что нужно отметить, это то, что EJB-QL - это не то же самое, что SQL, даже если он выглядит похожим, поэтому он не всегда ведет себя так же, как можно ожидать, что SQL-запрос будет работать.
Хотя TRIM
указано в спецификации EJB-QL, ORDER BY
должно использовать что-то, возвращаемое оператором SELECT
.В этом случае результат функции TRIM
не является идентификатором, который может удовлетворять предложению ORDER BY
.Из раздела Синтаксис языка запросов JPA Учебного руководства по Java EE 5 :
При использовании предложения ORDER BY предложение SELECT должно возвращать упорядоченный набор объектов или значений.Вы не можете упорядочивать значения или объекты для значений или объектов, не возвращаемых предложением SELECT.
Дополнительную информацию о языке запросов Java Persistance вы найдете в соответствующей главе Java EE 5Учебное пособие .