Quand je développais, je lisais le code des autres, et j’ai trouvé une note appelée @MappedSuperclass, basée sur la raison pour laquelle je l’ai vue pour la première fois, j’ai cherché sa signification sur Internet, et je vais la résumer ici.
Conditions d’utilisation :
Lorsque nous travaillons sur un projet de développement, nous utilisons souvent l’opération de mappage d’entités vers une table de base de données, et à ce stade, nous constatons souvent que dans plusieurs classes d’entités, nous devons impliciter,Il existe plusieurs attributs communs tels que l’ID du numéro, le créateur par, l’heure créée, l’heure modifiée, l’heure modifiée, les notes, etc。 Dans ce cas, on pourrait penser à abstraire ces propriétés comme une classe parente, puis à hériter de la classe parente avec une classe d’entité différente.
Alors on peutEn utilisant @MappedSuperclass annotation, nous pouvons traiter la classe entité comme l’entité de la classe de base, qui n’est pas implicite dans la table de la base de données, mais l’entité de sous-classe qui l’hérite scannera automatiquement les attributs implicites de l’entité de classe de base et l’ajoutera à la table de base de données correspondante de l’entité de la sous-classe.
Environnement d’utilisation :
1.@MappedSuperclass annotations sont utilisées au-dessus de la classe parente pour identifier la classe parente
Une classe identifiée 2.@MappedSuperclass indique qu’elle ne peut pas être mappée à une table de base de données car elle n’est pas une classe d’entité complète, mais elle possède des propriétés qui peuvent être implicites dans la table de la base de données utilisée par sa sous-classe
3.@MappedSuperclass ne peut plus avoir @Entity ni @Table annotations
|