JPQL 2.0 - объекты запроса на основе поля объекта суперкласса

У меня есть Entity (не MappedSuperclass) Person (с идентификатором, именем, фамилией).
У меня также есть Entity Employee extends Person (с другими атрибутами, неважными). Стратегия наследования - одна таблица.

Теперь я хочу создать namedQuery следующим образом:

SELECT emp FROM Employee emp WHERE emp.name = ?1

В IDE я получаю:

путь к полю состояния emp.name не может быть преобразован в допустимый тип

Я думаю, проблема в том, что атрибут принадлежит объекту суперкласса.
Пока что я не нашел другого решения, кроме использования оператора TYPE для выполнения выборочного запроса к экземплярам Employee.

Я хотел бы выполнить запрос выше. Это возможно?

Я использую EclipseLink/JPA 2.0.


person MoZZoZoZZo    schedule 29.04.2013    source источник
comment
Пожалуйста, разместите классы Person и Employee   -  person Sudhakar    schedule 30.04.2013


Ответы (2)


Ваш JPQL кажется действительным. Вы пробовали это во время выполнения? Это может быть просто проблема с вашей IDE.

(включите свой код)

person James    schedule 30.04.2013
comment
Действительно, это была проблема с Netbeans, я перешел к развертыванию, и все работало гладко. Большое спасибо. - person MoZZoZoZZo; 02.05.2013

Person должно быть @MappedSuperclass.

http://www.objectdb.com/api/java/jpa/MappedSuperclass

Кроме того, вы должны использовать именованные параметры, например. :name вместо ?...

person Kawu    schedule 29.04.2013
comment
если Person является сущностью, он не обязательно должен быть MappedSuperclass. - person Chris; 29.04.2013