Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 21246|Válasz: 0

[Forrás] egy másik objektum, amely ugyanazzal az azonosító értékkel már hozzá volt rendelve...

[Linket másol]
Közzétéve 2016. 07. 01. 10:48:52 | | | |
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!!





Előző:A dinamika használata a C# 4.0-ban
Következő:C# objektumok sekély replikációja
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com