Hibernate不保存外键,但使用junit就可以了
我有一个奇怪的问题。在一个带有spring、smartgwt和hibernate的J2ee Web应用程序中,碰巧我有一个类a,其中有一组类B,它们都映射到表a和表B 我编写了一个简单的测试用例来测试服务管理器,它应该按照预期执行插入、更新、删除和所有操作,特别是在插入期间。最后,我在A中有一条记录,在B中有一条记录带有A的外键 但是当我尝试从web应用程序调用服务时,B中的实体被保存,没有外键引用 我相信服务是一样的。我注意到的一点是,启用hibernate日志记录,似乎在从应用程序调用服务时,还会进行一次更新: 插入 插入B 更新 更新B 仅更新B外键Hibernate不保存外键,但使用junit就可以了,hibernate,foreign-key-relationship,Hibernate,Foreign Key Relationship,我有一个奇怪的问题。在一个带有spring、smartgwt和hibernate的J2ee Web应用程序中,碰巧我有一个类a,其中有一组类B,它们都映射到表a和表B 我编写了一个简单的测试用例来测试服务管理器,它应该按照预期执行插入、更新、删除和所有操作,特别是在插入期间。最后,我在A中有一条记录,在B中有一条记录带有A的外键 但是当我尝试从web应用程序调用服务时,B中的实体被保存,没有外键引用 我相信服务是一样的。我注意到的一点是,启用hibernate日志记录,似乎在从应用程序调用服务时
更新A只是猜测:可能是您在插入对象后使用了它们吗?Hibernate在调用commit时存储实际内存状态。因此,如果调用插入调用session.save的对象的服务,但在调用代码中再次更改实体,则会强制Hibernate执行另一次更新以存储最新的更改。在事务结束时检查内存中的对象