Tous les exemples que nous avons vus jusqu'à présent évitent soigneusement les classes Java qui héritent d'autres classes. Et pour cause : JPA offre un support particulier pour l'héritage, mais ce point est assez délicat à aborder. En fait, la notion d'héritage, qui est une notion issue de la programmation objet, se marie assez mal avec le modèle relationnel des bases de données. À tel point que les auteurs parlent de problème d'adaptation (
impedance matching
) entre ces deux modèles.
Examinons les solutions que JPA nous offre pour enregistrer une hiérarchie de classes en base.