Sessiooniga oli juba seotud teine objekt sama identifikaatori väärtusega: 398FDBBA-57B8-4D3D-B84B-4C0C0B497F02, üksus: XXX
Olen selle veaga kokku kaks korda kokku puutunud ja pole kunagi leidnud head lahendust, ning see viga tekkis
Põhjus on tõenäoliselt hästi teada, sest talveunes on samas sessioonis kaks identset logo
Kui tegemist on teise üksusega, teatatakse sellest veast saveOrUpdate(object) operatsiooni käivitamisel.
Hehe, võib-olla ütled, et pole vahet, mida sa ütled ja mida mitte, ma tunnistan, hehe, ma ei tea täpseid detaile
Miks see viga tekkis, muidu poleks seda ammu lahendatud, nüüd anna ajutine viga
Lahendus on anda inimestele nagu mina, kellel puudub võimalus juurpõhjust leida, võimalus jätkata rakendamist
(Muidugi on see õige, aga see ei alga põhjusest) Tegelikult on selle probleemi lahendamine väga lihtne, lihtsalt tee session.clean() operatsioon
Aga sa tegid saveOrUpdate(object) operatsiooni pärast puhastusoperatsiooni, mis on võimalik
"Leidsin kaks sama kollektsiooni kujutist", otsisin palju infot.
Puudub hea selgitus, mida see artikkel kõige rohkem aitab
http://opensource.atlassian.com/projects/hibernate/browse/HHH-509。
Lõpuks saab selle lahendada session.refresh (object) meetodiga, pane tähele, et kui objekt ei ole
Kui tegemist on objektiga, mille andmebaasis on andmeid, ei saa kasutada session.refresh (object) faktorit
Värskendamiseks tähendab objekti taasühendamist talveuneseisundist, kui sessioonis objekti ei ole
Kui see objekt on olemas, teatatakse veast, seega pead enne saveOrUpdate(object) kasutamist hindama.
Murra see
Loomulikult on selle probleemi lihtsaim lahendus kasutada Hibernate'iga kaasnevat merge() funktsiooni.
meetod. Kuid ma tunnen alati, et kui mul tekib probleeme, kasutan selle tarkvaraga kaasnevat väga kasulikku meetodit
(võrreldes saveOrUpdate(), save(), update()) tundub väga ebameeldiv. Hiljem avastasin ka, et see viga esineb sageli ühe-mitme ja palju-paljude kaardistuses – palun olge siin
Ole ettevaatlik, kui kasutad üks-mitmele ja palju-paljudele kaardistust Talveunne tõrkeotsing ja käsitlemine 1、sessiooniga oli juba seotud erinev objekt sama identifikaatoriväärtusega。 Vea põhjus: talveunes on samas sessioonis kaks identset identiteeti, kuid erinevad üksused. Lahendus 1: session.clean() PS: Kui teed andmeid muutvaid operatsioone, näiteks saveOrUpdate(object) pärast puhastusoperatsiooni, võid saada erandi "Leitud kaks sama kogu esitust". Lahendus 2: session.refresh(object) PS: Kui objekt ei ole objekt, millel on andmebaasis andmeid, ei saa kasutada session.refresh(object) faili, sest meetod on objekti taasühendamiseks talveuneseisundist; kui sessioonis objekti pole, teatatakse veast, seega pead enne saveOrUpdate(object) kasutamist hindama. Lahendus 3: session.merge(object) PS: Hibernate'i enda meetod on soovitatav. 2、Leidsin kaks sama kollektsiooni kujutist Vea põhjus: Vaata 1. Lahendus: session.merge(object) Ülaltoodud kaks anomaaliat ilmnevad sageli ühe-mitme kaardistuses ja mitme-paljude kaardistuses
Viga põhjustab:
Müüt:Sa ei saa luua uut kasutaja objekti ja siis saada kasutaja ID põhjal kasutaja info ning määrata selle sellele objektile, nii et teine objekt sama identifikaatori väärtusega oleks juba seotud sessiooni veaga!!
|