如何使用lombok为实体中embedded class的成员变量赋默认值?

How to assign default value to the member variable of embedded class in an entity using lombok?

我的实体中嵌入了 class。为了设置方法变量的默认值,我使用了 lombok builder default。但对于嵌入式 class,它不适用。

实体Class

@Entity
@Table
@Data
@Builder
class EntityClass{

  @Builder.Default
  private String someVariable = "";

  @Embedded
  private Address address;

}

嵌入式Class

@Embeddable
@Data
@Builder
class Address{

  @Builder.Default
  private String someVariable = "";

  @Builder.Default
  private String someOtherVariable = "";

}

对于 Address 默认值不适用,如果我不设置值,我将得到 null。

如果您正在使用其构建器实例化 EntityClass,并且在使用类型 Address 设置字段时,您使用的是 Address.builder(),则默认值将分配给它们的默认值.

例如:

EntityClass entity = EntityClass.builder().address(Address.builder().build()).build();

基本上,@Builder.Default 需要分配一个值。一般情况下,我们习惯赋值like,

@Builder.Default
private String someString = "";

@Builder.Default
private Integer someInteger = 0;

同理Address需要初始化

我在嵌入式中使用了生成器 class。

@Embedded
@Builder.Default
private Address address = Address.builder.build();

有效!