MyBatisPlus常用注解@TableField介绍和使用

2022-11-25  本文已影响0人  学习微站

@TableField(exist = false)

注解加载bean属性上,表示当前属性不是数据库的字段,但在项目中必须使用,这样在新增等使用bean的时候,mybatis-plus就会忽略这个,不会报错。
否则会报一个如下的异常。 ###Error querying database. Cause:com.mysql.jdbc.exception.jdbc4.MySQLSyntaxErrorException:Unknown column ‘***’ 'in field list’

具体使用如下

实体类下
@Data
@TableName(“join_brand”)
public class JoinBrand{
。。。。
@ApiModelProperty(value = “公司审查情况”)
@TableField(exist = false)
JoinBrandCompanyResp companyResp; }

实体类可分为三种
1、数据表 原则上一对一的实体类
类名上面可以加@TableName(“join_brand”)
如果加之外的需声明不被mybatisplus扫描到 @TableField(exitst = false)

注释@ApiModelProperty(value=“…”)也挺好用的

2、请求实体类
通常要传的参数在二个以上
通常用实体封装一下 命名:相关特征Req

3、响应给前端的值
通常给对象给到前端,或者给集合、分页数据

命名:相关特征Resp

@TableName

操作数据库表时,Mapper接口继承BaseMapper<>,泛型名和数据库表名对应,如果数据表名为t_users,而BaseMapper的泛型为实体类User,导致找不到数据库的表。 实体类使用@TableName注解,value值指定对应的表名。我们推荐规范value值指定对应的表名和实体类的命名保持一致,增加程序的可读性

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_user")
public class User {
    private Long id;
    private String name;

}

@TableId

MyBatisPlus在实现CRUD默认会将Id作为主键,在插入数据时,使用雪花算法生成Id,如果主键不叫Id则添加功能会失败

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_user")
public class User {
	@TableId
    private Long id;
    private String name;

}

@TableId(value = “uid”) //value指定当前作为主键的字段 @TableId(value = “id”,type = IdType.AUTO) //将当前属性所对应的字段作为主键

另外我们可以全局配置主键生成策略

mybatis-plus:  #mybatis-plus日志
  global-config: #MyBatisPlus全局配置
    db-config:  #配置数据库
      id-type: auto  #统一设置主键策略

@TableField

如果实体类的普通属性名,和数据库非主键的字段名不一致; 通常在需求需要往实体类加入与数据库不一致的时候,我们用@TableField去让MyBatisPlus不扫描该字段。

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_user")
public class User {
	@TableId
    private Long id;
    @TableField("username")
    private String name;

}

文章知识点与官方知识档案匹配,可进一步学习相关知识

本文使用 文章同步助手 同步

上一篇下一篇

猜你喜欢

热点阅读