我有這個奇怪的問題。在一個帶有spring,smartgwt和hibernate的J2ee webapp中,碰巧我有一個A類,它有一組B類,它們都被映射到表A和表B中。休眠不保存外鍵,但與junit沒關係
我寫了一個簡單的測試用例來測試特別是在插入期間,應該插入,更新,刪除和一切正常工作的服務管理器。最後,我在A中有一個記錄,在B中記錄外鍵爲A.
但是,當我嘗試從Web應用程序調用服務時,B中的實體保存時沒有外鍵引用。
我相信服務是一樣的。有一兩件事我注意到的是,使Hibernate日誌,似乎當服務從應用程序調用,多了一個更新由:
- 插入一個
- 刀片B
- 更新
- 更新乙
- 更新B(僅限外鍵)
- 更新A < --- ???
- 更新B < --- ???
相反,JUnit測試用例在運行時,更新如下:
- 插入
- 插入乙
- 更新甲
- 更新乙
- 更新B(外鍵)
I假設最新的更新是導致錯誤的原因,也許它是覆蓋值。 考慮到應用程序使用彈簧,與衆所周知的DAO +管理器機制,我可以在哪裏調查解決此問題?有人告訴我會話沒有關閉,所以休眠會自己釋放對象之前再做一次更新。
我很確定所有的配置hbm,xml和其他都很好......但我可能錯了。