Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 21246|Antwort: 0

[Quelle] Ein anderes Objekt mit demselben Identifikationswert war bereits mit ...

[Link kopieren]
Veröffentlicht am 01.07.2016 10:48:52 | | | |
Ein anderes Objekt mit demselben Identifikationswert war bereits mit der Sitzung verknüpft: 398fdbba-57B8-4D3D-B84B-4C0C0B497F02, von Entität: XXX



Ich bin diesen Fehler insgesamt zweimal aufgetreten und habe nie eine gute Lösung gefunden, und dieser Fehler ist aufgetreten

Der Grund dafür ist wahrscheinlich bekannt, denn im Winterschlaf gibt es zwei identische Logos in derselben Sitzung

Handelt es sich jedoch um eine andere Entität, wird dieser Fehler beim Ausführen der saveOrUpdate(object)-Operation gemeldet.

Hehe, vielleicht sagst du, es gibt keinen Unterschied zwischen dem, was du sagst und was du nicht sagst, ich gebe zu, hehe, ich kenne die Einzelheiten nicht

Warum dieser Fehler aufgetreten ist, sonst wäre er lange nicht gelöst worden, jetzt gib einen vorübergehenden

Die Lösung ist, Leuten wie mir, die keine Möglichkeit haben, die Ursache zu finden, eine Möglichkeit zu geben, weiterhin umzusetzen

(Natürlich ist es korrekt, aber es beginnt nicht mit der Ursache.)
    Tatsächlich ist es sehr einfach, dieses Problem zu lösen, man führt einfach die Operation session.clean() aus

Aber du hast die Aktion saveOrUpdate(object) nach der Clean-Operation durchgeführt, was möglich ist

"Zwei Darstellungen derselben Sammlung gefunden", ich suchte viele Informationen.

Es gibt keine gute Erklärung, für die dieser Artikel am meisten hilft

http://opensource.atlassian.com/projects/hibernate/browse/HHH-509。

Schließlich kann es mit der session.refresh(object)-Methode gelöst werden, beachten Sie, dass wenn das Objekt nicht ist

Wenn es sich um ein Objekt mit Daten in der Datenbank handelt, kannst du den Faktor session.refresh(object) nicht verwenden

Für Refresh wird das Objekt aus der Winterschlafsitzung neu gefiltert, wenn kein Objekt in der Sitzung vorhanden ist

Wenn dieses Objekt vorhanden ist, wird ein Fehler gemeldet, daher musst du das vor der Verwendung von saveOrUpdate(object) beurteilen.

Mach sie kaputt

    Natürlich ist die einfachste Lösung für dieses Problem die Verwendung des Merge() mit Hibernate geliefert.

Methode. Allerdings habe ich immer das Gefühl, dass ich, wenn ich auf Probleme stoße, die sehr nützliche Methode anwende, die mit dieser Software einhergeht

(im Vergleich zu saveOrUpdate(), save(), update()) fühlt sich sehr unangenehm an.
    Später stellte ich auch fest, dass dieser Fehler oft bei Eins-zu-viele- und Viele-zu-viele-Mapping auftritt, bitte hier

Seien Sie vorsichtig bei der Verwendung von Eins-zu-Viele- und Viele-zu-Viele-Karten
Fehlerbehebung und Handhabung im Winterschlaf
1、Ein anderes Objekt mit demselben Identifikationswert war bereits mit der Sitzung verknüpft。
Fehlergrund: Im Winterschlaf gibt es zwei identische Identitäten in derselben Sitzung, aber unterschiedliche Entitäten.
Workaround 1: session.clean()
PS: Wenn du nach der Clean-Operation Operationen zur Änderung des Datenzustands wie saveOrUpdate(object) durchführst, kannst du eine Ausnahme "Found two representations of same collection" erhalten.
Workaround 2: session.refresh(object)
PS: Wenn das Objekt kein Objekt mit Daten in der Datenbank ist, kannst du session.refresh(object) nicht verwenden, weil die Methode dazu dient, das Objekt aus der Ruhezustand zu refencieren. Wenn kein Objekt in der Sitzung ist, wird ein Fehler gemeldet, daher musst du vor der Verwendung von saveOrUpdate(object) beurteilen.
Lösung 3: session.merge(object)
PS: Hibernates eigene Methode wird empfohlen.
2、Zwei Darstellungen derselben Sammlung gefunden
Fehlerursache: Siehe 1.
Workaround: session.merge(object)
Die oben genannten beiden Anomalien treten oft in Eins-zu-Viele- und Viele-zu-Viele-Kartierungen auf




Fehlerursachen:

Mythos:Man kann kein neues Benutzerobjekt erstellen und dann die Benutzerinformationen basierend auf der Benutzer-ID erhalten und diesem Objekt zuweisen, sodass ein anderes Objekt mit demselben Identifikationswert bereits mit dem Sitzungsfehler verknüpft war!!





Vorhergehend:Verwendung von Dynamik in C# 4.0
Nächster:Klon-Flachreplikation von C#-Objekten
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com