@MappedSuperclass n'est pas un @Entité JPA?

Donc je suis en utilisant DerbyDB et je suis à la configuration de certaines entités. J'ai un @MappedSuperclass qui est utilisé comme une super-classe pour certaines entités (@Entity). Plus précisément, j'ai une super-classe User et 3 sous-classes, à savoir admin, regular et guest. Maintenant, j'ai une autre entité, disons file qui devrait de référence (comme l'un de ses champs) à son propriétaire. J'ai donc créé un champ appelé User owner.
L'erreur que j'obtiens est:

Exception Description: [File] uses a non-entity [User] as target entity in the relationship attribute [field owner].

Est-il une solution?

  • Votre erreur est clairement spécifiques selon implémentation JPA vous utilisez (et vous n'avez pas de nous dire laquelle). Mon fournisseur JPA permet l'utilisation de MappedSuperclass dans les relations.
  • ce JPA-fournisseur autorise l'utilisation de MappedSuperclass comme une entité? que de la documentation d'oracle: "Mappé super-classes ne peuvent pas être interrogés et ne peut pas être utilisé dans l'EntityManager ou les opérations de Requête."
  • DataNucleus JPA ne IIRC, et tout JPA vendeur peut offrir leurs propres extensions à l' (limitée) spécification JPA (comme d'autres le font dans d'autres domaines).
  • thx pour l'info, je n'ai travaillé avec EclipseLink et mise en veille prolongée jusqu'à présent, qui ne permettent pas à une MappedSuperclass être une entité
InformationsquelleAutor Rakim | 2016-05-02