Java 如何使用lombok为实体中嵌入类的成员变量指定默认值?
我的实体中有一个嵌入式类。为了设置方法变量的默认值,我使用了lombok builder default。但对于嵌入式类,它并不适用 实体类Java 如何使用lombok为实体中嵌入类的成员变量指定默认值?,java,spring,spring-boot,spring-data-jpa,lombok,Java,Spring,Spring Boot,Spring Data Jpa,Lombok,我的实体中有一个嵌入式类。为了设置方法变量的默认值,我使用了lombok builder default。但对于嵌入式类,它并不适用 实体类 @Entity @Table @Data @Builder class EntityClass{ @Builder.Default private String someVariable = ""; @Embedded private Address address; } @Embeddable @Data @B
@Entity
@Table
@Data
@Builder
class EntityClass{
@Builder.Default
private String someVariable = "";
@Embedded
private Address address;
}
@Embeddable
@Data
@Builder
class Address{
@Builder.Default
private String someVariable = "";
@Builder.Default
private String someOtherVariable = "";
}
嵌入式类
@Entity
@Table
@Data
@Builder
class EntityClass{
@Builder.Default
private String someVariable = "";
@Embedded
private Address address;
}
@Embeddable
@Data
@Builder
class Address{
@Builder.Default
private String someVariable = "";
@Builder.Default
private String someOtherVariable = "";
}
对于地址默认值不适用,如果我不设置值,我将得到null。如果您正在使用其生成器实例化
EntityClass
,并且在使用类型地址
设置字段时,您正在使用地址.builder()
然后将默认值与其默认值一起分配
例如:
EntityClass entity = EntityClass.builder().address(Address.builder().build()).build();
基本上,
@Builder.Default
需要指定一个值。在正常情况下,我们通常分配like
@Builder.Default
private String someString = "";
@Builder.Default
private Integer someInteger = 0;
同样地,地址
也需要初始化
我在嵌入式类中使用了生成器
@Embedded
@Builder.Default
private Address address = Address.builder.build();
它起作用了 请添加使用builderHanks创建EntityClass的代码以获得答案。我认为,为了处理所有实例的默认值,在实体类中指定对象将是有意义的。