J'ai une structure d'héritage avec des classes, disons Parent (comme la classe racine) et Child comme sous-classe.JPA 2.0: exception d'expression TYPE
Donc, avec JPA 2.0 Non je ne peux sélectionner que la classe parent en utilisant
SELECT p FROM Parent p WHERE TYPE(p) = Parent
Cela devrait retourner uniquement les entrées de parent et non aussi les entrées de l'enfant.
Mais avec mon EclipseLink 2.1.1 et MySql sur Glassfish v3, je reçois toujours l'erreur suivante:
"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".
De plus, je ne définissent ORM-mapping à la main. Tout cela est fait automatiquement lors du déploiement, je pense.
Y a-t-il quelque chose que je dois ajouter à ma classe Parent/Enfant (une annotation, par exemple) pour déclarer la structure d'héritage? (Mais je pense que cela ne devrait pas être nécessaire, parce que l'héritage est déclarée par Java, est-il?)
EDIT:
Un aspect important que je l'ai mentionné ne pas que j'utilise le méthode d'héritage "TABLE_PER_CLASS".
http://www.oracle.com/technetwork/articles/marx-jpa-087268.html Ce lien a mentionné dans le sujet 'Utilisons Mapping d'héritage Portable Strategies' que' Même si votre fournisseur JPA ne implémentez la stratégie de mappage d'héritage facultatif "table par classe concrète", il est préférable d'éviter cela si vous avez besoin de la portabilité du fournisseur JPA. »et a préféré utiliser l'héritage unique. – Ramsharan