合并后选择:Hibernate

时间:2012-05-04 11:21:41

标签: hibernate

我希望在同一服务(事务)中合并(更新)同一实体后,选择一个带有子节点(实体)的实体。我知道merge返回你更新的对象,但是这个对象有已更新的数据,而不是所有带有数据库数据的实体。另外,如果在合并后我执行一个选择尝试获取具有所有子项的实体,则返回仅更新的数据更新的对象(其余字段和子实体为空)。

有什么办法可以解决吗?必须在同一事务中执行所有操作,因为该服务具有许多必须在提交之前正确执行的数据库操作。

感谢。 问候。

1 个答案:

答案 0 :(得分:0)

这完全取决于您如何构建代码。如果您可以为您想要实现的目标提供更多信息/代码,将会有所帮助。

如果您已在实体及其子级之间正确设置级联选项,请从您的说明中检查。您可以为合并操作设置级联,这也应该刷新子级。 (注意:只有在延迟加载的情况下在合并操作之前获取任何子项时,这才有效。)

对于您的第二个问题,再次取决于您如何构建代码,以及从db获取数据的方式。 但是,理想情况下,与一个请求/工作单元相关的所有数据库操作都应在一个事务中处理。