Ich verstehe, dass wann NonUniqueObjectException auftritt und warum es auftritt.Wenn Hibernate entfernt wird, werden gelöschte Objekte aus dem Speicher entfernt NonUniqueObjectException
Ich sah viele Beispiele im Internet für NonUniqueObjectException, jeder hat das gleiche. Objekt wird zuerst von Sitzung1 getrennt, also wird Sitzung1 geschlossen und ebenfalls gelöscht, und dann Objekt mit derselben Kennung ist Update oder SaveOrUpdate in Sitzung2.
Code-Snippet:
Session session = sessionFactory1.openSession();
Transaction tx = session.beginTransaction();
Item item = (Item) session.get(Item.class, new Long(1234));
tx.commit();
session.close(); // end of first session, item is detached
item.getId();// The database identity is "1234" item.setDescription("my new description");
Session session2 = sessionFactory.openSession();
Transaction tx2 = session2.beginTransaction();
Item item2 = (Item) session2.get(Item.class, new Long(1234));
session2.update(item);// Throws NonUniqueObjectException
tx2.commit();
session2.close();
Meine Frage ist, selbst wenn seesion1 geschlossen ist, warum hat Hibernate freistehendes Objekt in session1 hält, obwohl es nicht verwalten. Wann wird das gesamte Objekt aus der Sitzung1 entfernt? verstehen
Bitte kopieren Sie den Code, den Sie fragen, in diese Frage zusätzlich zum Verlinken (Ihre Frage bleibt also verständlich, selbst wenn diese externe Seite ausfällt und die Leute keine externe Seite besuchen müssen, um Ihre Frage zu beantworten) – meriton
Code-Snippet hinzugefügt – Dave