我有一个继承结构与类,让我们说Parent(作为根类)和Child作为子类。
因此,使用JPA 2.0,我只能使用
选择Parent类SELECT p FROM Parent p WHERE TYPE(p) = Parent
这只应返回Parent的条目,而不是子条目。
但是我的EclipseLink 2.1.1和Glassfish v3上的MySql,我总是收到以下错误:
"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".
另外,我手动定义没有orm-mapping。我认为这都是在部署时自动完成的。
我是否需要添加到我的Parent / Child类(注释即)来声明继承结构? (但我认为这不应该是必要的,因为继承是由Java声明的,是吗?)
修改
我没有提到的一个重要方面是我正在使用继承方法“TABLE_PER_CLASS”。
答案 0 :(得分:4)
答案 1 :(得分:0)
我认为这是EclipseLink中的一个错误,因为我在JPA 2规范中找不到任何明显排除的内容,表明类型表达式不适用于TABLE_PER_CLASS。
格里