Mybatis plus注解@TableField详解

Mybatis plus注解@TableField详解

1. 前言

@TableField 字段注解,该注解用于标识非主键的字段。将数据库列与 JavaBean 中的属性进行映射。

2. 应用场景

2.1 更新null值

想要在更新字段时把null值更新到数据库时,加如下注解:

@TableField(updateStrategy= FieldStrategy.IGNORED)
private String useNature;

解说:
由于Mybatis plus默认的更新策略是NOT_NULL:非 NULL;即通过接口更新数据时数据为NULL值时将不更新进数据库。所以Mybatis plus通过updateById(XXX)更新数据,当用户有更新字段为空字符串或者 null 的需求时,需要对 FieldStrategy 策略进行调整。

FieldStrategy 有三种策略:
IGNORED:0 忽略
NOT_NULL:1 非 NULL,默认策略
NOT_EMPTY:2 非空

2.2 查询时排除字段

想要在查询库表映射时不返回指定字段给前端,加如下注解:

@TableField(select = false)
private String genderName;

注意:
应用在逻辑删除字段时可能会失效,比如:

@TableField(select = false)
private Boolean isDeleted;

在这里插入图片描述

解决:
加限定条件,如下,

List<User> userList = userMapper.mySelectList(Wrappers.<User>lambdaQuery()
          .gt(User::getAge,1).eq(User::getIsDeleted,0));

2.3 非数据库字段属性

想要在实体类映射插入库表时排除到指定字段,加如下注解:

@TableField(exist = false)
private List<SysRole> roles;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙糖橘

您的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值