我正在使用Spring simplejdbctemplate插入/更新一堆基于if/else块。使用jdbctemplate插入/更新
我想知道是否有办法将所有这些操作合并到一个事务中。目前,如果我的代码中断(出于某种原因),那么某些插入被执行,而某些不是。如果有任何失败,我希望整个事情都会失败。像SQL中的回滚一样。
这是可能做到simplejdbctemplate?
该链接并没有帮助我,因为我不明白我可以放置在哪里@Transaction
。我正在粘贴下面的代码,@Transaction
注释会在下面的代码中出现?
更新
代码:
for (Colors c : colors) {
if (isColorExistsInOtherDb(c)) {
if (!isColorExistsAlready(c)) {
insertIntoColor(c);
colorId = getMaxColorId();
}
else {
updateColor(c);
colorId = getColorIdByShade(c);
}
for (Shade s : c.getShades()) {
colorId = colorService.isShadeExistsForColor(colorId, s.getShadeId());
if (colorId <= 0) {
colorService.insertIntoColor(s);
colorId = colorService.getMaxColorId();
}
else {
colorService.updateColor(colorId, c);
}
insertMachinePoam(machineId, poamId);
}
}
else {
//do something else?
}
+1正好。 – duffymo
我提供了更新。该链接使我误以为在哪里放置'@ Transaction'注释 – birdy
您发布的代码是什么类/方法?注释会去那里。如果这个类还不是Spring bean /组件,那么你也需要做一个。 –