1

好吧,我可能已经挖掘了整个谷歌土地,但仍然找不到任何可以回答我问题的东西。

我有我的小 foo 方法,可以像这样进行一些删除:

private void foo()
{
   jdbcNamedParameterTemplate.update(sqlString, params);   //1
   jdbcNamedParameterTemplate.update(sqlString2, params2); //2
}

sqlString 和 sqlString2 只是删除语句,例如“Delete * from FooBar”。因此,当我进行第二次调用时update,我是否可以保证第一个调用在数据库中的任何操作都已经完成?

4

1 回答 1

0

如果您在一个会话中执行这两个操作并且非多线程,那么是的,在数据​​库中调用的第一个调用在第二次更新之前已经完成。

但如果不在同一个会话中,您可以检查版本以检查对象是否已更改

int oldVersion = foo.getVersion();
session.load( foo, foo.getKey() ); // load the current state
if ( oldVersion != foo.getVersion()) { .... }// if true then the object has been changed
于 2013-08-16T06:43:21.880 回答