@Getter & @Setter

生成getter和setter块

@Data注解

@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)注解

ToString注解

把所有属性都写到字符里返回

@EqualsAndHashCode注解

  1. 此注解会生成equals(Object other) 和 hashCode()方法。
  2. 它默认使用非静态,非瞬态的属性
  3. 可通过参数exclude排除一些属性
  4. 可通过参数of指定仅使用哪些属性
  5. 它默认仅使用该类中定义的属性且不调用父类的方法
  6. 可通过callSuper=true解决上一点问题。让其生成的方法中调用父类的方法。

@Entity

[@Entity]

必须与@Id注解 结合使用

否则 No identifier specified for entity:

name 属性

(可选)实体名称。 缺省为实体类的非限定名称。

该名称用于引用查询中的实体。

该名称不能是Java持久性查询语言中的保留字面值。

不与@Table结合的话 表名 默认为 SnakeCaseStrategy(命名策略 )为表名

若使用 name属性 且没有与@Table结合 则表名为 name值的SnakeCaseStrategy(命名策略 )

例如:

        @Entity
public class UserEntity{...} 表名 user_entity
@Entity(name="UE")
public class UserEntity{...} 表名 ue
@Entity(name="UsEntity")
public class UserEntity{...} 表名 us_entity

最新文章

  1. 2016 Multi-University Training Contest 2
  2. http load 的使用以及参数解释
  3. C++静态代码分析工具对比cppCheck与PreFast
  4. 使用容器控制器控制另外两个控制器的view交换
  5. Qt中暂停线程的执行(利用QMutex,超级简单明了)
  6. Struts2中有关struts-default.xml,struts.xml,struts.properties文件详解
  7. Tomcat下的work目录
  8. AIX误删除LV后如何进行现场保护和数据恢复工作
  9. php对数组中的键与值进行合并处理
  10. 【bzoj3772】精神污染
  11. Extensions in UWP Community Toolkit - WebViewExtensions
  12. mysql获取某个表的所有字段名
  13. Wepy在VScode中的高亮显示
  14. 对信号量Semaphore的理解与运用
  15. (转)EOSIO开发(一)使用Docker构建本地环境
  16. Eureka 消费方
  17. SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据
  18. WCF X.509证书双向认证小结
  19. 有间距的表格布局 table布局
  20. gdb常用命令小结

热门文章

  1. 提高测试脚本复用性降低DOM结构引起路径变化的影响
  2. uuid.go
  3. 简化异常处理的Throwables类
  4. Android+appium +python 点击坐标tap方法的封装
  5. 在Eclipse上Maven环境配置使用
  6. ReentrantLock之非公平锁源码分析
  7. SpringCloud学习系列之一 ----- 搭建一个高可用的注册中心(Eureka)
  8. 跟踪测试 DbContext ,向"不是真正的 ORM" 说拜拜
  9. 带你找到五一最省的旅游路线【dijkstra算法推导详解】
  10. 补习系列(16)-springboot mongodb 数据库应用技巧