2015-08-13 32 views
0

所以我知道這個問題看起來像重複。但事實並非如此。我有一個單元測試,我運行它,我得到這個錯誤: 存在多個具有給定標識符的行。所以我在發生的地方放了一個斷點,然後當它凍結在線上,我評估它,果然我得到了錯誤。如果我立即第二次評估它......錯誤消失,我得到我期待的單項結果。這幾乎就像休眠與其自身不同步。我也只從單元測試中得到這個錯誤。 有沒有人有類似的經歷?我試過.flush(), .clear()和其他各種各樣的東西。當測試沒有運行時,數據庫中根本沒有記錄,它告訴我是重複的。休眠多於一行的給定標識符

回答

0

哈利路亞!我發現了這個問題。顯然,我在測試本身的setup()方法中調用了一些DAO.clear()調用。我不確定他們在那裏做了什麼。或者,如果他們擁有它們會導致hibernate出現它所顯示的問題。但是,一旦我從測試設置數據中刪除了休眠.clear()調用,錯誤就一起消失了。我猜不是太多的人/項目使用Hibernate clear()調用,所以也許我發現了一些與它有關的奇怪的錯誤。 提防clear() .....

0

嘗試檢查實體關係@OneToOne,兩個實體將包含兩個記錄之一,因此它將無法通過ID查找或裝載的結果將是雙記錄。