我明白,何時發生NonUniqueObjectException並且它爲什麼會發生。hibernate何時從內存中移除分離的對象| NonUniqueObjectException
我在互聯網上看到很多NonUniqueObjectException的例子,每個例子都是一樣的。 對象首先從session1分離,因此session1也關閉並清除,然後具有相同標識符的對象是session2中的update或SaveorUpdate。
代碼片段:
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();
我的問題是,即使seesion1是封閉的,爲什麼休眠保持分離對象在會話1雖然沒有管理它。什麼時候從session1中刪除所有對象?
請將您詢問的代碼複製到此問題中,並鏈接到該代碼(即使外部網站發生故障,您的問題仍然可以理解),並且人們不必訪問外部網站來回答您的問題) – meriton
添加代碼片段 – Dave