我正在使用 Spring simplejdbctemplate 进行基于 if/else 块的插入/更新。
我想知道是否有一种方法可以将所有这些操作合并到一个事务中。目前,如果我的代码中断(由于某种原因),则执行某些插入,而某些则不执行。我希望整件事都失败,如果有什么失败的话。就像 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?
}