MybatisPlus设置字段为空依然更新

@TableField(updateStrategy= FieldStrategy.IGNORED)
private Long userId;
如果使用MyBatis Plus中的`getOne`方法查询出来的实体对象中有字段为空,可能是因为该字段在数据库中存储的值为null或字符串。这时可以通过在实体类中使用`@TableField`注解的`exist`属性来解决该问题。 `@TableField`注解用于标注实体类中的属性与数据库表中的字段的映射关系。`exist`属性用于指定该属性对应的数据库字段是否存在,如果存在则为true,否则为false。默认情况下,`exist`属性的值为true,表示该属性对应的数据库字段存在。 例如,如果一个实体类中的某个属性对应的数据库字段可能不存在,可以在该属性上使用`@TableField`注解,并将`exist`属性的值设为false,示例代码如下: ```java public class User { private Long id; @TableField(exist = false) private String address; // 省略其他属性和getter/setter方法 } ``` 上面的代码中,`address`属性使用了`@TableField`注解,并将`exist`属性的值设为false,表示该属性对应的数据库字段可能不存在。这样,在使用`getOne`方法查询出来的实体对象中,`address`属性就不会被赋值为null或字符串。 另外,如果查询出来的实体对象中的字段为空,还可以通过在查询条件构造器中使用`select`方法来指定查询出来的字段,示例代码如下: ```java QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("username", "admin"); queryWrapper.select("id", "username", "age"); User user = userService.getOne(queryWrapper); ``` 上面的代码中,`select`方法用于指定要查询的字段,本例中只查询`id`、`username`和`age`字段,其他字段不会被查询出来。这样,在查询出来的实体对象中,除了`id`、`username`和`age`字段,其他字段都会是null或字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值