NamedParameterJdbcTemplate.update如何真正适用于Spring和MySQL

时间:2013-08-16 01:46:51

标签: mysql database hibernate transactions jdbctemplate

好吧,我可能挖出整个谷歌的土地,但仍然无法找到任何可能回答我问题的东西。

我的小foo方法可以删除这样的内容:

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

sqlString和sqlString2只是删除语句,如"从FooBar"删除*。 所以当我第二次调用update时,我是否可以保证数据库中第一个调用的操作已经完成?

1 个答案:

答案 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