mapper的update方法,通过构造wrapper,已经能实现各种复杂update操作,所以我一致困惑第一个参数的作用,今天记录一下。
第一个实体类参数的作用是属性赋值,等效于wrapper.set,当一个属性同时有实体类赋值与wrapper赋值时,代码如下
@Test
void testUpdateWrapper() {
UpdateWrapper<Camel> updateWrapper = new UpdateWrapper<>();
updateWrapper.gt("age", 20);
updateWrapper.set("pwd", "abc");
Camel camel = new Camel();
camel.setAge(2);
camel.setPassword("123");
camelMapper.update(camel, updateWrapper);
}
执行sql,可以看到实体类属性值的优先级低于wrapper.set的
UPDATE camel SET pwd='123', age=2, pwd='abc' WHERE (age > 20)
通过实体类可以实现属性的快速赋值,没有这种需求时第一个参数可以设置为null。