我使用 Hibernate 已经有一段时间了,并且已经习惯了大多数常见的错误消息。大多数人直接指出了这个问题,但我一直遇到这个问题:
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session
我理解错误(会话有两个具有相同 ID 的不同对象),但我真的不知道调试代码以查找问题根源的好方法。通常,我查看我当前正在更改的代码,并寻找我加载一个对象并手动创建另一个对象的位置,希望我能在我的逻辑中找到一个简单的错误。但是,我目前正在使用一个不是我编写的、不熟悉的并且没有文档的代码集。我能想到的唯一解决方案是逐行检查代码,希望能找到错误。您知道调试此错误的更好方法吗?
此外,我得到的确切错误来自对 的调用saveOrUpdate()
,这让我想知道它是否save()
在应该调用时调用update()
。有什么方法可以查看 Hibernate 在当前 Session 中的对象以进行调试?