如何使用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();
有效!
我的实体中嵌入了 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();
有效!