• 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中的注解。
     

  • 相关阅读:
    图书管理系统
    IDEA中DEBUG技巧
    开发Qt上位机获取阿里云IOT设备数据(开发上位机对接阿里云IOT平台)
    动态库.lib与.dll关系、visual studio工程库路径配置浅析
    电脑重装系统后如何设置 win11 的默认登录方式
    【vue设计与实现】挂载和更新 2-正确的设置元素属性
    针对CSP-J/S的每日一练:Day7
    python 为 网易云下载的 本地音乐文件增加 序号
    电阻:分压造成的流血事件
    49.Java Files文件
  • 原文地址:https://blog.csdn.net/tianyuzui6/article/details/126887076