jfinal数据回滚问题

随想丶 发布于 2016/09/24 12:43
阅读 236
收藏 0
@Before({ Tx.class })
public void mergeObligee() throws Exception{
String id = getPara("obligeeid");// 主权利人id
String[] ids = getPara("ids").split(",");// 辅权利人ids
int totalLands = 0;
double totalLandAreas = 0.0;
TObligees tObligees = TObligees.dao.findById(id);
boolean flag = false;
if (tObligees != null) {
for (int i = 0; i < ids.length; i++) {
String id_tmp = ids[i];
if (id.equals(id_tmp)) {
continue;
}
TObligees obligee = TObligees.dao.findById(ids[i]);
if (obligee != null && "0".equals(obligee.get("isrelation") + "")) {
List<TParcelLands> lands = TParcelLands.dao.getParcelLands(id_tmp);
for (TParcelLands land : lands) {
land.set("ObligeeId", id);
totalLands += 1;
totalLandAreas +=StringUtils.isEmpty(land.get("area")+"")?0.0:Double.parseDouble(land.get("area")+"");
flag = land.update();
}
obligee.set("IsMerge", 1);
obligee.set("TotalLand", 0);
obligee.set("TotalLandArea", 0.0);
flag = obligee.update();
TTobligeemerges tTobligeemerges = TTobligeemerges.dao.findById(id, id_tmp);
if (tTobligeemerges == null) {
flag = TTobligeemerges.dao.insert(id_tmp, id);
} else {
flag = false;
}
}
}
tObligees.set("TotalLand", tObligees.getFloat("TotalLand")+totalLands);
tObligees.set("TotalLandArea", tObligees.getFloat("TotalLandArea") + totalLandAreas);
if (flag) {
flag = tObligees.update();
}
}
flag=false;
if (flag) {
setAttr("msg", "ok");
} else {
setAttr("msg", "no");
DbKit.getConfig().getConnection().rollback();
}
renderJson();
}
事务等级设置了4,自动提交为false,设置了回滚,但是没能成功,求助
加载中
0
JFinal
JFinal
    单步调试一下,看 Tx.intercpetor(...) 方法中的 rollback() 这行代码有没有被执行。此外,这类需要自行控制回滚的需求建议使用Db.tx(...) 来做事务
返回顶部
顶部