Функция JPQL CONCAT является булевой вместо String - PullRequest
0 голосов
/ 26 марта 2019

Я искал конкретный ответ на вопрос о дураках, но я не нашел ничего, что действительно помогло бы. Вот проблема:

На сервере WebLogic версий 12.2.1.2 и 12.2.1.3. при создании запроса как в приложении JPA

SELECT NEW model.ReturnType(a.id, a.name, CONCAT(a.name, a.id)) FROM EntityA a

выдает следующее исключение:

Описание исключения: было сгенерировано исключение при выполнении ReportQuery с выражением конструктора: java.lang.NoSuchMethodException: model.ReturnType. (java.lang.String, java.lang.String, java.lang.Boolean) Внутреннее исключение: java.lang.NoSuchMethodException: model.ReturnType. (java.lang.String, java.lang.String, java.lang.Boolean) Запрос: ReportQuery (name = "MyClassConcat" referenceClass = EntityA jpql = "SELECT NEW model.ReturnType (a.id, a.name, CONCAT (a.name, a.id)) ОТ EntityA а) в org.eclipse.persistence.internal.jpa.QueryImpl.getDatabaseQueryInternal (QueryImpl.java:344) в org.eclipse.persistence.internal.jpa.EntityManagerImpl.createNamedQuery (EntityManagerImpl.java:1135) в org.eclipse.persistence.internal.jpa.EntityManagerImpl.createNamedQuery (EntityManagerImpl.java:1155)

Тип возвращаемого значения для CONCAT должен быть String, а не Boolean.

Есть идеи, почему это происходит? И как использовать CONCAT в моем запросе, чтобы его можно было читать как строку вместо логического?

Спасибо!

1 Ответ

0 голосов
/ 27 марта 2019

Это происходит из-за (уже исправленной) ошибки, сообщенной в 512386 .Подробную причину можно найти в diff .

Поскольку ошибка была исправлена ​​довольно давно, я предполагаю, что есть доступный патч.Если нет, то нужно вернуться к обновлению библиотеки или полностью изменить поставщика сохранения.

...