Hibernate-yhdistäminen ja virkistävät yksiköt

aiemmassa tutoriaalissa opimme pelastavista yksiköistä käyttämällä save() tai saveOrUpdate() menetelmiä hibernatessa. Siellä opimme, että useimmissa tapauksissa, et edes tarvitse näitä menetelmiä kuin hibernate hallinnoi päivityksiä pysyviä yksiköitä automaattisesti. Sinun tarvitsee vain välittää ohimeneviä esineitä useimmissa tapauksissa. Tässä opetusohjelmassa käsittelen muutamia ajatuksia refresh() ja merge() metodin ympärillä, jotka ovat läsnä hibernate-istuntotunnilla.

Refreshing Hibernate Entitions Using refresh () Method

joskus kohtaamme tilanteen, jossa sovellustietokantaamme muokataan jollakin ulkoisella sovelluksella/agentilla ja näin vastaava hibernate-entiteetti sovelluksessasi itse asiassa ei ole synkronissa sen tietokannan esittämisen kanssa eli että sillä on vanhoja tietoja. Tällöin voidaan käyttää session.refresh()-menetelmää, jolla olio voidaan kansoittaa uusimmalla tietokannasta löytyvällä tiedolla.

voit käyttää Istuntokäyttöliittymän päivitysmenetelmää() pysyvän objektin ilmentymän päivittämiseen seuraavasti:

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

nämä menetelmät lataavat olion Ominaisuudet uudelleen tietokannasta ja korvaavat ne. Tosielämän sovelluksissa refresh() – menetelmää ei tarvitse käyttää kovin usein edellä mainittua skenaariota lukuun ottamatta.

Katsotaanpa esimerkkiä refresh () – menetelmästä.

Katso korostettujen rivien yläpuolelta.

  • linja 15 pelastaa työntekijän, jonka etunimi on ”Lokesh”
  • linja 26 asetti etunimeksi ”Vikas”. Koska kokonaisuus on irrotettu, DB: tä ei päivitetä.
  • rivi 27 Päivitä olio tietokannalla refresh() – menetelmällä.
  • rivi 32 varmista, että etunimi asetettu entity on päivitetty ”Lokesh” koska se on mitä tietokanta on tällä hetkellä.

kyse oli refresh-menetelmästä. Tarkastellaan toista samanlaista menetelmää merge().

Hibernate-entiteettien yhdistäminen merge () – menetelmällä

– menetelmällä merge() tapahtuu täsmälleen päinvastoin kuin refresh() – menetelmällä, eli se päivittää tietokannan erillisten entiteettien arvoilla. Refresh-menetelmä oli kokonaisuuden päivittäminen uusimmilla tietokantatiedoilla. Periaatteessa molemmat ovat siis täysin vastakkaisia.

yhdistäminen suoritetaan, kun halutaan, että erillisyksikkö muutetaan pysyvään tilaan uudelleen, jolloin erillisyksikön muutokset siirretään tietokantaan (tai ohitetaan se). Yhdistämistoimintojen menetelmän allekirjoitukset ovat:

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

Hibernaten viralliset asiakirjat antavat erittäin hyvän selityksen merge() menetelmälle:

Kopioi annetun kohteen tila pysyvälle kohteelle samalla tunnisteella. Jos istuntoon ei tällä hetkellä liity pysyvää esiintymää, se ladataan. Palauta pysyvä instanssi. Jos annettu esiintymä on tallentamaton, Tallenna kopio siitä ja palauta se vasta pysyvänä esiintymänä. Annettu instanssi ei liity istuntoon. Tämä toiminto cascades assosioituneille instansseille, jos assosiaatio on kartoitettu kaavalla cascade= ”merge”.

joten jos otan alle koodin esimerkiksi niin alla lueteltujen pisteiden pitäisi olla selkeitä sinulle.

EmployeeEntity mergedEmpEntity = session.merge(empEntity);
  • ’empEntity’ on irrallinen entiteetti, kun se siirretään yhdistettäväksi () – menetelmällä.
  • merge () – menetelmässä etsitään jo ladattua Empentity-instanssia empEntity-tiedostosta otetuilla tunnistetiedoilla. Jos tällainen pysyvä kokonaisuus löytyy, sitä käytetään päivityksiin. Muut wise uusi työntekijä Ladataan istuntoon käyttäen samoja tunnistetietoja kuin ”empEntity”.
  • tiedot kopioidaan ”empentitysta” uudelle löydetylle/ladatulle entiteetille.
  • koska uusi / löydetty entiteetti on pysyvä, kaikki siihen kopioitu tieto ”empentitysta” tallennetaan automaattisesti tietokantaan.
  • kyseisen uuden entiteetin viite palautetaan merge () – menetelmästä ja liitetään muuttujaan ”mergedEmpEntity”.
  • ”empentiteetti” on edelleen irrallinen kokonaisuus.

yllä olevassa esimerkissä ”merged persistentempentity” on uusi, pysyvä kokonaisuus. Jos siis haluat vielä tehdä muutoksia, tee ”mergedperententempentity” – esimerkki.

siinä kaikki tälle tutoriaalille, joka kattaa merge() ja refresh() menetelmät hibernatessa. Muista, että kysymys voidaan esittää erona välillä merge() ja refresh(), tai erona välillä merge() ja load() jne. Ole valmis kohtaamaan tällaisen eron haastattelukysymysten välillä.

Onnellista Oppimista !!

oliko tämä viesti hyödyllinen?

Kerro, jos pidit viestistä. Se on ainoa tapa parantaa.
Kyllä
Ei

aiemmassa tutoriaalissa opimme pelastavista yksiköistä käyttämällä save() tai saveOrUpdate() menetelmiä hibernatessa. Siellä opimme, että useimmissa tapauksissa, et edes tarvitse näitä menetelmiä kuin hibernate hallinnoi päivityksiä pysyviä yksiköitä automaattisesti. Sinun tarvitsee vain välittää ohimeneviä esineitä useimmissa tapauksissa. Tässä opetusohjelmassa käsittelen muutamia ajatuksia refresh() ja merge() metodin ympärillä, jotka ovat läsnä hibernate-istuntotunnilla. Refreshing Hibernate Entitions Using refresh…

aiemmassa tutoriaalissa opimme pelastavista yksiköistä käyttämällä save() tai saveOrUpdate() menetelmiä hibernatessa. Siellä opimme, että useimmissa tapauksissa, et edes tarvitse näitä menetelmiä kuin hibernate hallinnoi päivityksiä pysyviä yksiköitä automaattisesti. Sinun tarvitsee vain välittää ohimeneviä esineitä useimmissa tapauksissa. Tässä opetusohjelmassa käsittelen muutamia ajatuksia refresh() ja merge() metodin ympärillä, jotka ovat läsnä hibernate-istuntotunnilla. Refreshing Hibernate Entitions Using refresh…

Vastaa

Sähköpostiosoitettasi ei julkaista.