Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate不保存外键,但使用junit就可以了_Hibernate_Foreign Key Relationship - Fatal编程技术网

Hibernate不保存外键,但使用junit就可以了

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日志记录,似乎在从应用程序调用服务时

我有一个奇怪的问题。在一个带有spring、smartgwt和hibernate的J2ee Web应用程序中,碰巧我有一个类a,其中有一组类B,它们都映射到表a和表B

我编写了一个简单的测试用例来测试服务管理器,它应该按照预期执行插入、更新、删除和所有操作,特别是在插入期间。最后,我在A中有一条记录,在B中有一条记录带有A的外键

但是当我尝试从web应用程序调用服务时,B中的实体被保存,没有外键引用

我相信服务是一样的。我注意到的一点是,启用hibernate日志记录,似乎在从应用程序调用服务时,还会进行一次更新:

插入 插入B 更新 更新B 仅更新B外键
更新A只是猜测:可能是您在插入对象后使用了它们吗?Hibernate在调用commit时存储实际内存状态。因此,如果调用插入调用session.save的对象的服务,但在调用代码中再次更改实体,则会强制Hibernate执行另一次更新以存储最新的更改。在事务结束时检查内存中的对象