Aynı tanımlayıcı değerine sahip farklı bir nesne zaten oturuma ilişkilendirilmişti: 398FDBBA-57b8-4d3d-B84B-4c0C0B497F02, varlığı: XXX
Bu hatayla toplamda iki kez karşılaştım ve hiç iyi bir çözüm bulamadım, bu hata ortaya çıktı
Nedeni muhtemelen iyi bilinir, çünkü kış uykusunda aynı oturumda iki aynı logo vardır
Ancak, farklı bir varlık ise, bu hata saveOrUpdate(object) işlemi çalıştırıldığında bildirilecektir.
Hehe, belki diyeceksin, söylediklerin söyledikleriyle söylemediklerin arasında fark yok, kabul ediyorum, hehe, detayları bilmiyorum
Bu hata neden oldu, yoksa uzun süre çözülemezdi, şimdi, geçici bir hata ver
Çözüm, benim gibi kök nedeni bulamayan insanlara uygulamaya devam edebilecekleri bir yol sunmak
(Tabii ki doğru, ama sebeple başlamaz) Aslında, bu sorunu çözmek çok basit, sadece session.clean() işlemini gerçekleştirin
Ama saveOrUpdate(object) işlemini temizlik işleminden sonra yaptınız, bu mümkün
"Aynı koleksiyonun iki temsili buldum", çok fazla bilgi aradım.
Bu makalenin en çok yardımcı olduğu iyi bir açıklama yok
http://opensource.atlassian.com/projects/hibernate/browse/HHH-509。
Son olarak, session.refresh (nesne) yöntemiyle çözülebilir, objektin olmaması durumunda
Veritabanında veri olan bir nesneyse, session.refresh(object) faktörünü kullanamazsınız
Yenilemek, oturumda nesne yoksa nesneyi hibernasyon oturumundan yeniden aktarmaktır
Bu nesne varsa, bir hata bildirilecektir, bu yüzden saveOrUpdate(object) kullanmadan önce değerlendirme yapmanız gerekir.
Kır
Elbette, bu sorunun en kolay çözümü Hibernate ile gelen merge() özelliğini kullanmaktır.
yöntem. Ancak, sorunlarla karşılaştığımda, bu yazılımla birlikte gelen çok faydalı yöntemi kullandığımı her zaman hissediyorum
(saveOrUpdate(), save(), update()) ile karşılaştırıldığında çok rahatsız edici hissettiriyor. Daha sonra bu hatanın genellikle bir-çok eşlemede ve çok-çok eşlemede de görüldüğünü fark ettim, lütfen burada olun
Bir-çok ve çok-çok eşlemesi kullanırken dikkatli olun Uyku Uykusu Sorun Giderme ve Yönetimi 1、aynı tanımlayıcı değerine sahip farklı bir nesne zaten oturumla ilişkilendirilmişti。 Hata nedeni: Uyku uykusunda aynı oturumda iki aynı kimlik vardır ama farklı varlıklardır. Çözüm 1: session.clean() Not: Temizleme işleminden sonra saveOrUpdate(object) gibi veri durumunu değiştirmek için işlemler yaparsanız, "Aynı koleksiyonun iki temsili bulundu" istisnası alabilirsiniz. Çözüm 2: session.refresh(object) Not: Nesne veritabanında veri olan bir nesne değilse, session.refresh(object) kullanamazsınız çünkü yöntem nesneyi hibernate oturumundan geri almaktır; oturumda herhangi bir nesne yoksa hata bildirilir, bu yüzden saveOrUpdate(object) kullanmadan önce değerlendirme yapmanız gerekir. Çözüm 3: session.merge(object) Not: Hibernate'in kendi yöntemi önerilir. 2、Aynı koleksiyonun iki temsili bulundu Hata nedeni: Bkz. 1. Çözüm: session.merge(object) Yukarıdaki iki anomali genellikle bir-çok eşlemede ve çok-çok eşlemede ortaya çıkar
Hata nedenleri:
Efsane:Yeni bir kullanıcı nesnesi oluşturup kullanıcı kimliğine göre kullanıcı bilgilerini alıp bu nesneye atamanız, böylece aynı tanımlayıcı değerine sahip farklı bir nesne zaten oturum hatasına ilişkilendirilmiş olurdu!!
|