Mybatis plus注解@TableField详解

Mybatis plus注解@TableField详解

目录

    • 1. 前言
    • 2. 应用场景
    • 2.1 更新null值
    • 2.2 查询时排除字段
    • 2.3 非数据库字段属性

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;

Mybatis plus注解@TableField详解_第1张图片

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

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;

你可能感兴趣的:(mybatis,mybatis,java)