在使用@Transactional
注释的方法中,是否应在LOCK TABLE
块内或之前执行try
语句?
选项1:
jdbcTemplate.execute(SQL_LOCK);
try {
//Some work
} finally {
jdbcTemplate.execute(SQL_UNLOCK);
}
选项2:
try {
jdbcTemplate.execute(SQL_LOCK);
//Some work
} finally {
jdbcTemplate.execute(SQL_UNLOCK);
}
谢谢, 迈克尔
答案 0 :(得分:1)
选项2似乎更可取,因为即使在执行SQL_UNLOCK
期间抛出异常,它也可以保证执行SQL_LOCK
语句。
答案 1 :(得分:1)
选择选项2 ,finally
sql解锁是否在try-catch
阻止中引发异常。
如果选项1 ,如果try-catch
阻止SQL LOCK
之前引发异常,则程序不保证输入finally
阻止解锁它。