【发布时间】:2015-08-03 15:52:49
【问题描述】:
我有一个 for 循环,它调用另一个使用休眠将数据保存到临时表的方法。在 for 循环之后,我有一段代码调用存储过程来将保存的数据从临时表复制到活动表。然而,存储过程在hibernate开始保存数据之前首先被调用,即使保存数据的代码在存储过程之前也是如此。因此,当我查询实时表时,数据不存在。在我调用存储过程之前,有没有办法等待休眠完成更新? Hibernate 似乎在更新数据库之前先等待 for 循环完成,这可能就是为什么当我调用存储过程时结果为空的原因。任何人都可以帮助我解决这个延迟问题吗?非常感谢。
这是我的代码:
for(Object1 obj: obj1List){
saveHibernateObj(obj);
}
getCurrentSession().createSQLQuery("Call update_object()").executeUpdate();
【问题讨论】:
-
saveHibernateObj() 是如何工作的?您能否让 saveHibernateObj() 返回成功或失败值 (0,1),然后仅在结果成功 (0) 时调用您的存储过程?
-
我这样做了,但没有奏效。丹尼尔的回答奏效了。感谢 SpaceCowboy 的评论。
标签: java mysql hibernate stored-procedures