Java HIBERNATE在更新对象时抛出错误:“具有相同标识符值的不同对象已与会话关联”

Java HIBERNATE在更新对象时抛出错误:“具有相同标识符值的不同对象已与会话关联”,java,hibernate,session,Java,Hibernate,Session,更新对象时,无法更新上述错误 PublishedAssessmentData associatepublishobj = (PublishedAssessmentData) associatePublishedobjectdata.get(i); PublishedAssessmentData existing_publishobj = service.transferupdatedpublishedassessments(associatepublishob

更新对象时,无法更新上述错误

PublishedAssessmentData associatepublishobj = (PublishedAssessmentData) associatePublishedobjectdata.get(i);                  
PublishedAssessmentData existing_publishobj = service.transferupdatedpublishedassessments(associatepublishobj,sbipublishobj);                     
openSession.saveOrUpdate(existing_publishobj);

唯一的原因可能是,您从Hibernate获取了对象,然后再次尝试保存或更新。 您以前在会话中保存了对象,现在正在尝试再次保存该对象


在对象关联或获得的会话上调用commit。

@Arshad我正在提交会话中保存的任何对象,我认为问题不在于……@SanthoshKumar544如果对已关联会话的对象调用save,则提交时肯定会出现异常。顺便说一句,什么是异常类?@YahyaArshad在这种情况下,您可能会得到约束冲突异常,但不会得到上述异常。简单地说,多个不同对象ID、相同类型、具有相同ID PK的对象与您的会话相关联。因此,当您执行session.saveOrUpdateobj时,Hibernate无法决定应该保存/更新哪个对象。