У меня есть структура наследования с классами, скажем, Parent (как корневой класс) и Child как подкласс.
Итак, с JPA 2.0 нет, я могу выбрать только родительский класс, используя
SELECT p FROM Parent p WHERE TYPE(p) = Parent
Это должно возвращать только записи Parent, а не записи дочерних элементов.
Но с моим EclipseLink 2.1.1 и MySql на Glassfish v3 я всегда получаю следующую ошибку:
"Invalid Type Expression on [my.domain.Parent]. The class
does not have a descriptor, or a descriptor that does not use
inheritance or uses a ClassExctractor for inheritance".
Кроме того, я не определяю отображение формы вручную. Думаю, все это делается автоматически при развертывании.
Есть ли что-то, что я должен добавить в свой класс Parent/Child (аннотацию, т.е.), чтобы объявить структуру наследования? (Но я думаю, что в этом нет необходимости, потому что наследование объявлено Java, не так ли?)
EDIT:
Один важный аспект, о котором я не упомянул, заключается в том, что я использую метод наследования "TABLE_PER_CLASS".
Use Portable Inheritance Mapping Strategies
, чтоEven if your JPA provider does implement the optional “table per concrete class” inheritance mapping strategy, it is best to avoid this if you need JPA provider portability.
предпочла использовать одиночное наследование. - person Ramsharan   schedule 16.07.2013