Hibernate JPA Cascade tyypit

opimme yhdistettyjen yksiköiden kartoittamisesta hibernate jo aiemmissa opetusohjelmissa, kuten one-to-one mapping ja one-to-many mappings. Siellä halusimme pelastaa kartoitetun kokonaisuuden aina, kun parisuhteen omistaja-yhteisö pelastui. Tämän mahdollistamiseksi meillä oli käytössä ”CascadeType” – attribuutti. Tässä JPA Cascade tyypit opetusohjelma, opimme erilaisia käytettävissä vaihtoehtoja cascadetype kautta cascadetype.

miten JPA: n Kaskadityypit toimivat?

ennen kuin siirrytään eteenpäin, katsotaan, miten tämä kaskadityyppinen attribuutti määritellään koodissasi. Otetaan esimerkki selkeämmästä ymmärryksestä. Otetaan tilanne, jossa työntekijällä voi olla useita tilejä, mutta yhden tilin on liityttävä vain yhteen työntekijään. Luodaan kokonaisuuksia, joilla on mahdollisimman vähän tietoa selvyyden vuoksi.

Työllistyvyysaste.java

tilinteko.java

Katso yllä olevaa lihavoitua riviä lähdekoodille EmployeeEntity.java. Siinä määritellään ”cascade=CascadeType.ALL” ja se tarkoittaa käytännössä sitä, että kaikki muutokset tapahtuivat EmployeeEntity täytyy tapahtua myös AccountEntity. Jos tallennat työntekijän, kaikki siihen liittyvät tilit tallennetaan myös tietokantaan. Jos poistat työntekijän, kaikki kyseiseen työntekijään liittyvät tilit myös poistetaan. Yksinkertaista.

mutta mitä jos haluamme vain ryöpyttää vain operaatioita, mutta emme poistaa operaatiota. Sitten meidän täytyy selkeästi määrittää se käyttämällä alla koodia.

nyt vain kun tallenna() tai säily () – menetelmiä kutsutaan käyttäen työntekijän instanssia, vain tilit säilyvät. Jos jokin muu menetelmä kutsutaan istuntoon, sen vaikutus ei vaikuta/cascade tileille.

Javan Pysyvyysarkkitehtuurin tukemat KASKADITYYPIT

alla olevat kaskadityypit:

  1. Kaskadityypit.Jatkuvat: cascade type presist tarkoittaa, että save() tai continue() operations cascade to related entities.
  2. CascadeType.YHDISTÄÄ : kaskadityyppi merge tarkoittaa, että toisiinsa liittyvät yhteisöt sulautuvat, kun omistava yhteisö yhdistetään.
  3. CascadeType.REFRESH: cascade type refresh tekee saman asian refresh () – operaatiolle.
  4. CascadeType.Poista: cascade type remove poistaa kaikki tähän asetukseen liittyvät entiteetit, kun omistava entiteetti poistetaan.
  5. CascadeType.DETACH: kaskadityyppi detach irrottaa kaikki asiaan liittyvät yksiköt, jos tapahtuu ”manuaalinen irrotus”.
  6. CascadeType.KAIKKI : kaskadityyppi all on pikakirjoitus kaikille edellä mainituille kaskadioperaatioille.

yhteisessä parlamentaarisessa edustajakokouksessa ei ole oletuskaskadityyppiä. Oletusarvoisesti mitään toimintoja ei ryöpytetä.

cascade-asetusvalinta hyväksyy joukon Cascadetyyppejä; näin ollen, jos cascade-operaatioon sisällytetään vain yksi yhteen-suhde, kuten esimerkissämme, saatat nähdä seuraavaa:

cascadingin yläpuolella aiheuttaa tilikokoelman vain yhdistämisen ja päivittämisen.

Hibernate Cascade-tyypit

antaa nyt ymmärtää, mikä on cascade horrostilassa, missä skenaariossa käytämme sitä.

yhteisen parlamentaarisen edustajakokouksen toimittamien kaskadityyppien lisäksi horrostilassa on vielä yksi kaskadioperaatio, joka ei kuulu edellä mainittuun normaaliin sarjaan, nimeltään ”orpojen poisto”. Tämä poistaa omistetun objektin tietokannasta, kun se poistetaan omistussuhteestaan.

ymmärretään esimerkin avulla. Työntekijämme ja Tiliyhteisömme esimerkissä olen päivittänyt ne alla olevaan tapaan ja maininnut” orphanRemoval = true ” tileillä. Se tarkoittaa käytännössä sitä, että aina kun poistan ”tilin tilijoukosta” (eli poistan kyseisen tilin ja työntekijän välisen suhteen), myös tiliyhteisö, joka ei ole yhteydessä mihinkään muuhun tietokantaan kirjattuun työntekijään (eli orvoon), olisi poistettava.

Työllistyvyysaste.java

tilinteko.java

TestOrphanRemovalCascade.java

se on erittäin hyvä tapa poistaa vastaavat / Yhteensopimattomat kohteet kokoelmasta (eli monesta yhteen tai yhdestä moneen suhteeseen). Voit vain poistaa kohteen kokoelmasta ja talviunille huolehtia loput asiat puolestasi. Se tarkistaa, onko entiteetti on viitattu mistä tahansa paikasta tai ei; jos se ei ole niin se poistaa entiteetti tietokannasta itse.

kerro ajatuksesi ja kysymyksesi hibernate 5 cascade-tyypeistä tai JPA cascade-tyypeistä, jos sellaisia on.

onnellista oppimista !!

Oracle-blogi kaskadityypeistä

oliko tästä postauksesta apua?

kerro, piditkö viestistä. Se on ainoa tapa parantaa.
Kyllä
Ei

Vastaa

Sähköpostiosoitettasi ei julkaista.