springboot~lombok使用总结
2024-10-14 19:18:49
@Getter & @Setter
生成getter和setter块
@Data注解
@Data相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集。
通过官方文档,可以得知,当使用@Data注解时,则有了@EqualsAndHashCode注解,那么就会在此类中存在equals(Object other) 和 hashCode()方法,且不会使用父类的属性,这就导致了可能的问题。
比如,有多个类有相同的部分属性,把它们定义到父类中,恰好id(数据库主键)也在父类中,那么就会存在部分对象在比较时,它们并不相等,却因为lombok自动生成的equals(Object other) 和 hashCode()方法判定为相等,从而导致出错。
修复此问题的方法很简单:
- 使用@Getter @Setter @ToString代替@Data并且自定义equals(Object other) 和 hashCode()方法,比如有些类只需要判断主键id是否相等即足矣。
- 或者使用在使用@Data时同时加上@EqualsAndHashCode(callSuper=true)注解
ToString注解
把所有属性都写到字符里返回
@EqualsAndHashCode注解
- 此注解会生成equals(Object other) 和 hashCode()方法。
- 它默认使用非静态,非瞬态的属性
- 可通过参数exclude排除一些属性
- 可通过参数of指定仅使用哪些属性
- 它默认仅使用该类中定义的属性且不调用父类的方法
- 可通过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
最新文章
- 2016 Multi-University Training Contest 2
- http load 的使用以及参数解释
- C++静态代码分析工具对比cppCheck与PreFast
- 使用容器控制器控制另外两个控制器的view交换
- Qt中暂停线程的执行(利用QMutex,超级简单明了)
- Struts2中有关struts-default.xml,struts.xml,struts.properties文件详解
- Tomcat下的work目录
- AIX误删除LV后如何进行现场保护和数据恢复工作
- php对数组中的键与值进行合并处理
- 【bzoj3772】精神污染
- Extensions in UWP Community Toolkit - WebViewExtensions
- mysql获取某个表的所有字段名
- Wepy在VScode中的高亮显示
- 对信号量Semaphore的理解与运用
- (转)EOSIO开发(一)使用Docker构建本地环境
- Eureka 消费方
- SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据
- WCF X.509证书双向认证小结
- 有间距的表格布局 table布局
- gdb常用命令小结
热门文章
- 提高测试脚本复用性降低DOM结构引起路径变化的影响
- uuid.go
- 简化异常处理的Throwables类
- Android+appium +python 点击坐标tap方法的封装
- 在Eclipse上Maven环境配置使用
- ReentrantLock之非公平锁源码分析
- SpringCloud学习系列之一 ----- 搭建一个高可用的注册中心(Eureka)
- 跟踪测试 DbContext ,向"不是真正的 ORM" 说拜拜
- 带你找到五一最省的旅游路线【dijkstra算法推导详解】
- 补习系列(16)-springboot mongodb 数据库应用技巧