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 一个吧。