好吧,我可能挖出整个谷歌的土地,但仍然无法找到任何可能回答我问题的东西。
我的小foo方法可以删除这样的内容:
private void foo()
{
jdbcNamedParameterTemplate.update(sqlString, params); //1
jdbcNamedParameterTemplate.update(sqlString2, params2); //2
}
sqlString和sqlString2只是删除语句,如"从FooBar"删除*。
所以当我第二次调用update
时,我是否可以保证数据库中第一个调用的操作已经完成?
答案 0 :(得分: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