lombok的踩坑

lombok的踩坑

1. @Builder

使用@Builder构建的时候如果不显式的对某变量赋值的话默认就是null,因为这个变量此时是在Builder
类里的,通过调用build()方法生成具体T类则是通过私有构造函数来实例化,默认是全参数的构造函数。

和mybatis一起使用的时候,会造成实体映射错误。报数组越界异常.

"nested exception is org.apache.ibatis.exceptions.PersistenceException: "

解决方法:

使用@Builder注解的时候,尽量加上@AllArgsConstructor注解和@NolArgsConstructor注解

2. @EqualsAndHashCode

当这个注解设置callSuper=true时,会调用父类的equlas()方法。对象判断equals时,就会连同父类属性一起做equals判断。

equals()的实现实际上是受业务场景影响的,无论是否使用父类的属性做比较都是有可能的。所以开发者还是需要根据实际业务去使用callSuper。

加上exclude可以排除一些字段

参考链接:https://www.cnblogs.com/wuyuegb2312/p/9750462.html

猜你喜欢

转载自www.cnblogs.com/proper128/p/13210330.html