【发布时间】:2012-10-04 22:43:01
【问题描述】:
我正在使用 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?
}
【问题讨论】:
标签: java mysql spring-mvc spring-jdbc