• springboot常用注解


    @ApiModel
    实体类上边使用,标记类时swagger的解析类

    @Accessors

    (1)该注解主要作用是:当属性字段在生成 getter 和 setter 方法时,做一些相关的设置。

    (2)当它可作用于类上时,修饰类中所有字段,当作用于具体字段时,只对该字段有效。

    @Data

    相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集 

    通过官方文档,可以得知,当使用@Data注解时,则有了@EqualsAndHashCode注解,那么就会在此类中存在equals(Object other) 和 hashCode()方法,且不会使用父类的属性,这就导致了可能的问题。

    比如,有多个类有相同的部分属性,把它们定义到父类中,恰好id(数据库主键)也在父类中,那么就会存在部分对象在比较时,它们并不相等,却因为lombok自动生成的equals(Object other) 和 hashCode()方法判定为相等,从而导致出错。

    修复此问题的方法很简单:

    1. 使用@Getter @Setter @ToString代替@Data并且自定义equals(Object other) 和 hashCode()方法,比如有些类只需要判断主键id是否相等即足矣。
    2. 或者使用在使用@Data时同时加上@EqualsAndHashCode(callSuper=true)注解。
       

    @TableField(exist = false)

    注解加载bean属性上,表示当前属性不是数据库的字段,但在项目中必须使用,这样在新增等使用bean的时候,mybatis-plus就会忽略这个,不会报错

    否则会报一个如下的异常。
    ###Error querying database. Cause:com.mysql.jdbc.exception.jdbc4.MySQLSyntaxErrorException:Unknown column ‘***’ 'in field list’
     

    @TableId

    这个注释主要用于对应数据库表的实体类中的主键属性

    @TableId(value=“数据库主键字段”,type = IdType.六种类型之一)

    AUTO数据库自增ID
    NONE数据库未设置主键类型(将会跟随全局)
    INPUT用户输入ID(该类型可以通过自己注册自动填充插件进行填充)
    ID_WORKER默认的全局唯一ID (idWorker)
    UUID

    全局唯一ID(UUID)

    ID_WORKER_STR字符串全局唯一ID(ID_WORKER 的字符串表示)

    @TableName

    是mybatis-plus中的注解,主要是实现实体类型和数据库中的表实现映射。

    注意,不要将@TableName和@Table注解认为是一个,虽然功能相同,但是,@TableName是mybatis-plus中的注解,@Table是Hibernate中的注解。
     

  • 相关阅读:
    流量代理——正向代理
    一站式管理上千连锁门店的北极星指标
    QT—图形视图
    requests 库:发送 form-data 格式的 http 请求 (python)
    使用python备份博客数据并自动备份至百度网盘
    简单的咖啡文化静态HTML网页设计作品 DIV布局咖啡馆文化网页模板代码 DW咖啡网站制作成品
    ES6介绍
    弘辽科技:淘宝店铺标签如何更精准?能强制搜索人群打标的方法吗
    Java基础----多线程
    JavaScript 各种小案例
  • 原文地址:https://blog.csdn.net/tianyuzui6/article/details/126887076