lombok的@builder 不能新建DO对象 Lombok存在的一些问题

Posted lixiaochong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lombok的@builder 不能新建DO对象 Lombok存在的一些问题相关的知识,希望对你有一定的参考价值。

1. 实体类加上 lombok的@builder之后  就不能新建对象了,,,构造函数被覆盖了?

 

技术图片

 

 

 技术图片

加上两个标签之后解决

技术图片

 

 

2.Lombok存在的一些问题

lombok问题

@Builder和@NoArgsConstructor同时使用时会报错

两个同时使用时需要加上@AllArgsConstructor全参构造函数

数据库对应实体的BO使用了@Builder必须要需要加上@NoArgsConstructor和@AllArgsConstructor

因为mybatis必须要有@NoArgsConstructor创建无参构造函数才能进行操作

实体类上如果有属性有初始化值需要在属性上加@Builder.Default

@Accessors(chain = true)使用注意:使用了这个注解,clone对象不能被赋值

序列化问题
枚举加了@JsonSerialize(using = JsonEnumSerializer.class)注解,序列化时用jackson会报错,需要用fastJson

使用select... for update加悲观锁的sql语句必须加事务
spring中update操作会自动commit,select不会自动commit

https://juejin.im/post/5ce6092ce51d4510b71da563

mysql 字段越多查询越慢,尽量需要哪些字段就查哪些字段
不加索引,条件查询很慢,45000条带不加索引的条件,查询出一条要2.5秒,添加索引后只要0.02秒

组合索引,是最左前缀原则
alter table recharge_card_information add index index_card (card_no,card_money,CARD_PASSWORD) ;

最左前缀原则 :必须要带上card_no条件,card_money,CARD_PASSWORD的索引才会生效
组合索引生效的条件 :
where 后带card_no、where 后带card_no和card_money、where 后带card_no和CARD_PASSWORD
或者 where后带card_no,card_money,CARD_PASSWORD。
总之必须带最左的条件


链接:https://www.jianshu.com/p/f47b59dd347e

 

以上是关于lombok的@builder 不能新建DO对象 Lombok存在的一些问题的主要内容,如果未能解决你的问题,请参考以下文章

@Builder lombok注解

使用Lombok中的@Builder代替传统对象赋值

使用Lombok @Builder注解导致默认值无效

还在手写 Builder 模式?试试 Lombok 中的 @Builder 用法,太强了!

Lombok @Builder 用于具有强制字段的多级继承中的类

还在手写 Builder 模式?试试 Lombok 中的 @Builder 用法,太强了。。