NutzCN Logo
问答 如何在更新 entity 操作时追加新的限定条件
发布于 3329天前 作者 qq_8f0057fd 2050 次浏览 复制 上一个帖子 下一个帖子
标签: dao

我的 entity 除了有个主键之外,还有一个字段(版本),当我 update(obj) 时我想实现更新指定记录时添加版本信息作为其除主键以外的限制字段,更新的时候这个字段的值也需要同时被更新掉,多个客户可能同时更新同一条记录,我想通过这样的方式控制这种情况下只有一个用户能够更新成功?可以实现吗?

4 回复

是这样的SQL吧?

update XXX set yyy=zzz , ver=4 where id=123 and ver=3;

转成nutz.dao的话

// 首先, 把对象转为Chain,且过滤掉ver属性
Chain chain = Chain.from(user, FieldMatcher.make(null, "ver", dao));
// 然后, ver用+1的方式
chain = chain.addSpecial("ver", "+1");
// 调用更新,限定主键和ver的值
dao.update(User.class, chain, Cnd.where("id", "=", user.getId()).and("ver", "=", user.getVer()));

谢谢,这个正是我想要的。

记得加行级锁

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