Toen ik ontwikkelde, las ik de code van anderen, en ik vond een notitie genaamd @MappedSuperclass, gebaseerd op de reden waarom ik het voor het eerst zag, ik zocht de betekenis ervan op op internet op, en ik zal het hier samenvatten.
Gebruiksvoorwaarden:
Wanneer we aan een ontwikkelingsproject werken, gebruiken we vaak de operatie entity mapping naar een databasetabel, en op dat moment merken we vaak dat we in verschillende entity-klassen moeten impliciteren,Er zijn verschillende veelvoorkomende attributen zoals nummer-ID, gemaakt door, aangemaakte tijd, gewijzigde, gewijzigde tijd, notities, enzovoort。 In dit geval kunnen we denken aan het abstraheren van deze eigenschappen als een ouderklasse, en vervolgens de ouderklasse erven met een andere entiteitsklasse.
Dan kunnen weMet behulp van @MappedSuperclass annotatie kunnen we de entiteitsklasse behandelen als de basisklasse-entiteit, wat niet impliciet is aan de databasetabel, maar de subklasse-entiteit die deze erft, zal automatisch de impliciete attributen van de basisklasse-entiteit scannen en toevoegen aan de bijbehorende databasetabel van de subklasse-entiteit.
Gebruiksomgeving:
1.@MappedSuperclass annotaties worden bovenop de ouderklasse gebruikt om de ouderklasse te identificeren
Een klasse die 2.@MappedSuperclass wordt geïdentificeerd, geeft aan dat deze niet aan een databasetabel kan worden gekoppeld omdat het geen volledige entiteitsklasse is, maar ze heeft eigenschappen die impliciet kunnen worden in de databasetabel die door zijn subklasse wordt gebruikt,
3.@MappedSuperclass kan geen @Entity of @Table annotaties meer hebben
|