Hibernate Sammenslåing Og Forfriskende Enheter

i forrige tutorial, lærte vi om å lagre enheter som bruker save() eller saveOrUpdate() metoder i hibernate. Der lærte vi at i de fleste tilfeller trenger du ikke engang disse metodene, da hibernate administrerer oppdateringene på vedvarende enheter automatisk. Du trenger bare å bry seg om forbigående objekter i de fleste tilfeller. I denne opplæringen diskuterer jeg noen tanker rundt refresh() og merge() metode som er tilstede i hibernate session class.

Forfriskende Dvalemodus Enheter ved hjelp av refresh() Metode

noen ganger står vi overfor situasjon der vi applikasjonsdatabasen er endret med noe eksternt program / agent og dermed tilsvarende dvalemodus i søknaden din blir faktisk synkronisert med databasepresentasjonen, dvs. å ha gamle data. I dette tilfellet kan du bruke session.refresh() – metoden til å fylle ut enheten på nytt med de nyeste dataene som er tilgjengelige i databasen.

du kan bruke en av oppdateringsmetodene() i Øktgrensesnittet til å oppdatere en forekomst av et fast objekt på følgende måte:

public void refresh(Object object) throws HibernateExceptionpublic void refresh(Object object, LockMode lockMode) throws HibernateException

disse metodene vil laste egenskapene til objektet fra databasen, overskrive dem. I virkelige applikasjoner trenger du ikke å bruke metoden refresh() veldig ofte bortsett fra ovennevnte scenario.

La oss se på et eksempel på refresh () – metoden.

Se over de uthevede linjene.

  • Linje 15 lagre ansatt med fornavn «Lokesh»
  • Linje 26 angi fornavnet «Vikas». SOM enhet er løsrevet, VIL DB ikke bli oppdatert.
  • Linje 27 oppdater enheten med database ved hjelp av refresh() – metoden.
  • Linje 32 kontroller at fornavn satt i entity har blitt oppdatert med «Lokesh» som det er hva databasen har dette øyeblikket.

Dette handlet om oppdateringsmetode. La oss se en annen lignende metode merge().

Sammenslåing Av Dvalemodus Enheter ved hjelp av merge() Metode

Metode merge() gjør nøyaktig motsatt til hva refresh() gjør det. Oppdater metoden var å oppdatere enheten med nyeste databaseinformasjon. Så i utgangspunktet er begge nøyaktig motsatt.

Sammenslåing Utføres når du ønsker å få en frittstående enhet endret til fast tilstand igjen, med den frittstående enhetens endringer overført til (eller overstyre) databasen. Metodesignaturene for fletteoperasjonene er:

Object merge(Object object)Object merge(String entityName, Object object)

Hibernate offisiell dokumentasjon gir en veldig god forklaring påmerge() metode:

Kopier tilstanden til det gitte objektet til det vedvarende objektet med samme identifikator. Hvis det ikke er noen vedvarende forekomst knyttet til økten, lastes den inn. Returner den vedvarende forekomsten. Hvis den gitte forekomsten ikke er lagret, lagrer du en kopi av og returnerer den som en nylig vedvarende forekomst. Den gitte forekomsten blir ikke knyttet til økten. Denne operasjonen kaskader til tilknyttede forekomster hvis tilknytningen er tilordnet cascade=»merge».

Så hvis jeg tar under kode for eksempel, bør nedenfor oppførte punkter være klare for deg.

EmployeeEntity mergedEmpEntity = session.merge(empEntity);
  • ’empEntity’ er frittliggende enhet når den sendes til merge () – metoden.
  • merge () – metoden vil søke etter en Allerede lastet EmployeeEntity-forekomst med identifikasjonsinformasjon hentet fra empEntity. Hvis en slik vedvarende enhet blir funnet, vil den bli brukt til oppdateringer. Annen klok en ny EmployeeEntity er lastet inn i økten ved hjelp av samme identifikator informasjon som finnes i ’empEntity’.
  • Data kopieres fra ’empEntity’ til ny funnet / lastet enhet.
  • fordi ny / funnet enhet er vedvarende, lagres alle data kopiert til den fra ’empEntity’ automatisk i databasen.
  • Referanse for den nye enheten returneres fra merge () – metoden og er tilordnet til’ mergedEmpEntity ‘ – variabel.
  • ’empEntity’ er fortsatt frittstående enhet.

i eksemplet ovenfor er ‘mergedPersistentEmpEntity’ ny enhet som er vedvarende. Så hvis du vil ha mer endring, gjør du inn i’ mergedPersistentEmpEntity ‘ – forekomsten.

Det er alt for denne opplæringen som dekker merge() og refresh() metoder i dvalemodus. Husk at spørsmålet kan stilles som forskjell mellom merge() og refresh(), eller forskjell mellom merge() og load() etc. Vær klar til å møte slike forskjeller mellom intervjuspørsmål.

Glad Læring !!

Var dette innlegget nyttig?

Gi oss beskjed hvis du likte innlegget. Det er den eneste måten vi kan forbedre oss på.
Ja
Nei

i forrige tutorial, lærte vi om å lagre enheter som bruker save() eller saveOrUpdate() metoder i hibernate. Der lærte vi at i de fleste tilfeller trenger du ikke engang disse metodene, da hibernate administrerer oppdateringene på vedvarende enheter automatisk. Du trenger bare å bry seg om forbigående objekter i de fleste tilfeller. I denne opplæringen…

i forrige tutorial, lærte vi om å lagre enheter som bruker save() eller saveOrUpdate() metoder i hibernate. Der lærte vi at i de fleste tilfeller trenger du ikke engang disse metodene, da hibernate administrerer oppdateringene på vedvarende enheter automatisk. Du trenger bare å bry seg om forbigående objekter i de fleste tilfeller. I denne opplæringen…

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.