Forfremmelse
CodeGym University
Læring
Kurs
Oppgaver
Spørreundersøkelser og spørrekonkurranser
Spill
Hjelp
Rute
Samfunnet
Brukere
Forum
Chat
Artikler
Suksesshistorier
Aktivitet
Anmeldelser
Abonnementer
Lett tema
Leksjoner
Anmeldelser
Om oss
Start
Begynn å lære
Begynn å lære nå
Oppdragskart
Leksjoner
Nivå 15
Arbeide med enhetshierarkier
SQL & Hibernate
Nivå ,
Lekse
Bevaringsspørsmål I dag vil vi ha et nytt og superinteressant opplegg - ved å bruke Hibernate-funksjonene for å lagre klassehierarkiet i databasen. Et klassehierarki er et sett med klasser knyttet til hverandre ved et arveforhold. Tenk deg
En enkelt tabell for hele klassehierarkiet
SQL & Hibernate
Nivå ,
Lekse
Beskrivelse Den neste tilnærmingen til å lagre et klassehierarki er å lagre alle klassene i hierarkiet i en enkelt tabell . Denne strategien kalles Single Table . For eksempel slik: CREATE TABLE user_ employee_client {
Diskriminator
SQL & Hibernate
Nivå ,
Lekse
Beskrivelse I forrige leksjon så du at Hibernate bruker en spesiell DTYPE VARCHAR-kolonne for å lagre navnet på en Entity-klasse. En slik kolonne kalles en diskriminator . Den brukes til entydig å bestemme hvilken klasse som skal opprettes
Sammenføyd Tabell
SQL & Hibernate
Nivå ,
Lekse
Beskrivelse En annen strategi for å lagre et klassehierarki i en database kalles Joined Table. Det er en spesiell merknad for det: @Inheritance(strategy = InheritanceType.JOINED) Et eksempel på våre klasser: @Inheritance(strategy = Inherita
Tabell per klasse
SQL & Hibernate
Nivå ,
Lekse
5.1 Beskrivelse Og til slutt, den siste strategien er Tabell per klasse. Det betyr at en egen tabell vil bli brukt for hver klasse. På en måte er dette den samme MappedSuperClass, bare i en oppdatert form. Først må du bruke en merknad: @Inh
Velge en hierarkibevaringsstrategi
SQL & Hibernate
Nivå ,
Lekse
Beskrivelse Hver av de ovennevnte strategiene og teknikkene har sine egne fordeler og ulemper. Generelle anbefalinger for å velge en spesifikk strategi vil se slik ut: TABLE_PER_CLASS-strategi basert på UNION Denne strategien er best valgt
Please enable JavaScript to continue using this application.