Lombok @Data, @Builder, @NoArgsConstructor注解实体类运行MyBatis报错
Java 程序中,我们使用 MyBatis ORM 框架和 MySQL 交互。MySQL 有个 user 表,所以在 Java 程序我们需要有个 User 类。
我给 User 类添加了 @Data 和 @Builder 注解,结果在做 select 操作时报错了,MyBatis 应该是说需要一个无参构造器。
@Data 注解会默认生成 getter/setter,和无参构造方法,但是当我们添加了 @Builder 注解时,无参构造器就被删除掉了,所以报错了。
这时我们会想到那我再加一个 @NoArgsConstructor 注解行不行呢,实验后发现是不行的。
@NoArgsConstructor 和 @Builder 会有冲突,导致编译出错。
可以添加一个无参构造方法并加上@Tolerate注解,如下:
1 |
|
或者,类似这种和MySQL表结构对应的Entity类,就不使用 @Builder 注解,需要User实例时,就 new 一个吧。