NutzCN Logo
问答 关于nutz事物回滚问题
发布于 2202天前 作者 wx_j46og14qpuc88jusssgr 1776 次浏览 复制 上一个帖子 下一个帖子
标签:
Trans.exec(new Atom() {
	@Override
	public void run() {
		familyMemberService._update(member);
		familyInfoService.updateCreditGiver(member.familyCode);
	}
});
public void updateCreditGiver(String familyCode) {
        //更新农户收信人信息
        FamilyInfo familyInfo = this.fetch(familyCode);
        if (!Lang.isEmpty(familyInfo.members)) {
            familyInfo.creditGiver = "";
            for (int i = 0; i < familyInfo.members.size(); i++) {
                FamilyMember familyMember = familyInfo.members.get(i);
                if (Strings.isNotNull(familyMember.isCreditGiver) && familyMember.isCreditGiver.equals("是")) {
                    familyInfo.creditGiver += familyMember.name + "(" + familyMember.idNumber + ");" ;
                }
            }
            super._update(familyInfo);
        }
    }

问题是:事物执行完回滚了,两张表的数据都没有更新,要怎么在一个方法里边用事物控制更新两张表中的数据?

4 回复

你理解的事务是怎样的?

刚才说的有歧义,我是不知道它为啥回滚了,在找原因,可能是数据的问题

回滚了,数据不就应该不更新吗?

来自炫酷的 NutzCN

@zozo你说的对。之前是我觉得两条更新都成功了,所以事物不应该回滚,因为没有抛异常,所以就忽略了数据问题,觉得不应该回滚,纳闷儿呢。现在发现是数据本身存在问题,导致sql执行成功了,但是数据并没有发生变更,我误以为是事物回滚了。

添加回复
请先登陆
回到顶部