gpt4 book ai didi

spring-boot - "Mapstruct"有没有办法使用 mapstruct 将空字符串映射到 null?

转载 作者:行者123 更新时间:2023-12-04 12:07:31 25 4
gpt4 key购买 nike

我正在使用 map 结构用于在我的 中将 Dto 映射到实体,反之亦然 Spring Boot 应用。

I want to know that, is there a way that i can map, if any String value coming as empty, to null value using mapstruct @Mapping() ?



是否可以?

提前致谢

最佳答案

上面的答案是可以的。我个人更喜欢这样做更安全一点,也许更具声明性。

@Mapper
public interface MyMapper {

@Mapping( target = "s2", qualifiedBy = EmptyStringToNull.class )
Target map( Source source);

@EmptyStringToNull
default String emptyStringToNull(String s) {
return s.isEmpty() ? null : s;
}

@Qualifier
@java.lang.annotation.Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface EmptyStringToNull {
}

class Source {

private String s1;
private String s2;

public String getS1() {
return s1;
}

public void setS1(String s1) {
this.s1 = s1;
}

public String getS2() {
return s2;
}

public void setS2(String s2) {
this.s2 = s2;
}
}

class Target {

private String s1;
private String s2;

public String getS1() {
return s1;
}

public void setS1(String s1) {
this.s1 = s1;
}

public String getS2() {
return s2;
}

public void setS2(String s2) {
this.s2 = s2;
}
}
}



您可以重复使用 EmptyStringToNull限定符可以根据需要多次使用,并且不依赖于参数名称。

关于spring-boot - "Mapstruct"有没有办法使用 mapstruct 将空字符串映射到 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61249398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com