我有这个奇怪的问题。在一个带有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和其他都很好......但我可能错了。