Stratégie de sous-classe jointe

Dans cette stratégie, chaque classe est mise en correspondance avec sa propre table primaire. Les tables primaires des classes enfant ont des clés de référence qui pointent vers les tables primaires des classes parent.

Une annotation Inheritance avec la stratégie JOINED est générée. L'annotation PrimaryKeyJoinColumn est générée pour définir une colonne de jointure qui joint la table primaire d'une sous-classe d'entité à la table primaire de sa superclasse.

Pour plus d'informations sur les correspondances, voir Modélisation des correspondances objet/relationnel (O/R).

@Entity(name="Shape")
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="shapeType")
@Table(name="Shape")
public class Shape { ... }

@Entity(name="Rectangle")
@Inheritance(strategy=InheritanceType.JOINED)
@PrimaryKeyJoinColumns({
 @PrimaryKeyJoinColumn(name="sid", referencedColumnName="sid")
})
@Table(name="Rectangle")
public class Rectangle extends Shape { ... }

Une vérification de modèle est disponible pour s'assurer que les tables primaires des classes enfant ont des références de clé pointant vers les tables primaires de leurs classes parent.