NutzCN Logo
问答 关于Chain的疑惑,Sql自动添加字段?
发布于 2368天前 作者 疯子 1456 次浏览 复制 上一个帖子 下一个帖子
标签:

首先先表达一下使用Chain的感受——爽~!
问题:
我的目的是在mvc方法中使用对象取出不为空的字段,对表进行更新。
或者说类似Mybatis的if标签的功能
那么问题来了,有如下代码:

@At("/")
	public Object userListPage(@Param("..") User user, @Param("..") Pager pager) {
		dao.update(
				User.class, 
				Chain.from(user, FieldMatcher.make(null, "id", true)),
				Cnd.where("id", "=", user.getId())
				);
		return "执行到这";
	}

在这段代码中,保留值给的null,
忽略 id 字段,因为这个不更新,只用作条件,
第三个参数,就是去掉没有赋值的字段属性。
我的提交地址:

/user?id=1&username="admin1"

运行结果是没有报错的,问题是Sql打印出来是这样的:

For example:> "UPDATE user SET username='"admin1"',locked=false  WHERE id=1"

虽然说我的表中是有locked的这个字段,但是我没有在url中提交这个字段啊......!

3 回复
Chain.from(user, FieldMatcher.make(null, "id|locked", true))

好吧,已经明白了,我在User实体类中把布尔类型设置成boolean,而不是大写的Boolean。
导致对象创建的适合默认赋值了!

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