Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用lombok为实体中嵌入类的成员变量指定默认值?_Java_Spring_Spring Boot_Spring Data Jpa_Lombok - Fatal编程技术网

Java 如何使用lombok为实体中嵌入类的成员变量指定默认值?

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

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

实体类

@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的代码以获得答案。我认为,为了处理所有实例的默认值,在实体类中指定对象将是有意义的。