Mapping strategies - Mapping inheritance - Table per subclass with joins

4 belangrijke vragen over Mapping strategies - Mapping inheritance - Table per subclass with joins

Hoe worden de klassen in kaart gebracht als tabellen ?

1 tabel per klasse zelfs superklassen een concrete wordt voorgesteld door de subklasse te joinen met de superklasse tabel

Hoe wordt de Table per subclass with joins strategie concreet uitgevoerd


Annoteer de abstracte klasse met
@Entity
@Inheritance(strategy = InheritanceType.JOINED)


eventueel kan je de primaire sleutel expliciet declareren:
@Entity
@PrimaryKeyJoinColumn(name = "naam")

Wat een SELECT zal gegenereerd worden door een query op de subklasse ?

Hibernate gebruikt een inner join
  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Nadelen van de tabel per klasse met joins strategie ?




Zoals je kunt zien, is deze toewijzingsstrategie moeilijker om met de hand te implementeren - zelfs ad-hocrapportage is complexer. Dit is een belangrijke overweging als je van plan bent om Spring Data JPA of Hibernate-code te combineren met handgeschreven SQL. Een gebruikelijke aanpak en een draagbare oplossing kan werken met JPQL (Jakarta Persistence Query Language) en methoden annoteren met JPQL-query's.
Verder, hoewel deze toewijzingsstrategie bedrieglijk eenvoudig lijkt, is onze ervaring dat de prestaties onaanvaardbaar kunnen zijn voor complexe klassenhiërarchieën. Queries vereisen altijd een join over veel tabellen of veel opeenvolgende leesbewerkingen.

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo