Указание столбцов в JPQL SELECT приводит к ошибке литья
Вопрос
Когда я указываю столбцы в моем запросе JPQL / JPA 2.0, то есть select p.id, p.lastName, p.firstName from Profile p where p.group = :group
Я получаю следующую ошибку: [Ljava.lang.Object; cannot be cast to com.profs.ws.Profile...
Кто-нибудь знает, как решить эту проблему на литье?
То Profile
Сам класс объекта имеет свойства следующих типов: String, int, and Collection
. Отказ Свойства, которые я выбираю в запросе, являются одним из типов String
или int
.
Решение
Когда вы указываете свойства объекта, JPA возвращает список Object[]
. Отказ Вы можете отбросить возвращаемое значение List<Object[]
вместо List<Profile>
чтобы избежать ClassCastException
. Отказ Если вы используете Hibernate в качестве провайдера JPA, вы можете сопоставить предложение выбора на новый объект. Видеть Выберите пункт Документация для деталей.