Egy másik objektum, amely ugyanazzal az azonosító értékkel már hozzárendelt: 398FDBBA-57B8-4D3D-B84B-4C0C0B497F02, az entitás: XXX
Összesen kétszer találkoztam ezzel a hibával, de soha nem találtam jó megoldást, és ez a hiba megtörtént
Az ok valószínűleg jól ismert, mert a hibernációban két azonos logó van ugyanabban az ülésben
Ha azonban más entitásról van szó, ezt a hibát jelentik a saveOrUpdate(objektum) művelet futtatásakor.
Hehe, talán azt mondod, nincs különbség aközött, amit mondasz, és amit nem, bevallom, hehe, nem tudom a részleteket
Miért történt ez a hiba, különben sokáig nem oldódott volna meg, most pedig adj egy ideiglenest.
A megoldás az, hogy olyan embereknek, mint én, akiknek nincs módjuk megtalálni a gyökérokot, lehetőséget adjunk a folytatásra
(Természetesen helyes, de nem az okával kezdődik) Valójában nagyon egyszerű megoldani ezt a problémát, csak végezd el session.clean() műveletet
De a saveOrUpdate(objektum) műveletet a tisztítás után végezted el, ami lehetséges
"Két ábrázolást találtam ugyanabból a gyűjteményből", rengeteg információt kerestem.
Nincs jó magyarázat, amelyhez ez a cikk a legtöbbet segít
http://opensource.atlassian.com/projects/hibernate/browse/HHH-509。
Végül megoldható a session.refresh (objektum) módszerrel, figyeld meg, hogy ha az objektum nem
Ha egy objektumról van szó, amelynek adatai az adatbázisban vannak, nem használhatod a session.refresh (objektum) faktort
A frissítés azt jelenti, hogy az objektumot visszacsatoljuk a hibernációs ülésből, ha nincs objektum az ülésen
Ha létezik ez az objektum, hibát jelentenek, ezért a saveOrUpdate(objektum) használata előtt meg kell ítélni.
Törd el
Természetesen a legegyszerűbb megoldás erre a problémára, ha a Hibernate-hez tartozó merge() funkciót használjuk.
módszer. Azonban mindig úgy érzem, hogy amikor problémákkal szembesülök, a szoftverhez tartozó nagyon hasznos módszert használom
(a saveOrUpdate(), save(), update()-hez képest) nagyon kellemetlen. Később azt is tapasztaltam, hogy ez a hiba gyakran megjelenik egy-több-leképezésben és sok-sok-több-leképezésben is, kérlek, légy itt
Légy óvatos, amikor egy-több-és sok-sok-sok leképezést használsz Hibernációs hibakeresés és kezelés 1、egy másik objektum ugyanazzal azonosító értékkel már hozzá volt rendelve。 Hiba oka: Téli álmában két azonos identitás van ugyanabban az ülésben, de különböző entitások. 1. megoldás: session.clean() Ui.: Ha az adatállapot megváltoztatására szolgáló műveleteket végzel, például saveOrUpdate(objektum) a tisztítás után, előfordulhat, hogy kapsz egy "Két representációt találtunk ugyanarról a gyűjteményről" kivételt. 2. megoldás: session.refresh(objektum) Ui.: Ha az objektum nem olyan objektum, amelynek adatbázisában van adat, nem használhatod a session.refresh(object) fájlt, mert a módszer az, hogy az objektumot a hibernált ülésből visszacsatoljuk; ha nincs objektum a sessionben, hibát jelentenek, ezért a saveOrUpdate(object) használata előtt meg kell ítélni. 3. megoldás: session.merge(objektum) Ui.: A Hibernate saját módszere ajánlott. 2、Két reprezentációt találtunk ugyanannak a gyűjteménynek Hiba oka: Lásd 1. Kerülőmegoldás: session.merge(objektum) A fenti két anomália gyakran megjelenik egy-több-leképezésben és sok-sok-több-leképezésben
A hiba okai a következők:
Mítosz:Nem lehet új felhasználói objektumot létrehozni, majd a felhasználói azonosító alapján megkapni a felhasználói adatokat, és hozzárendelni ehhez az objektumhoz, így egy másik objektum, amelynek ugyanaz az azonosító értéke már hozzárendelhető a session hibával!!
|