Java MapStruct始终将布尔值转换为false

j8yoct9x  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(45)

我有两个班。
第一:

@Getter
@Builder
@Document("user")
public class UserDocument {

    @Id
    private String id;

    private final String username;

    private final String email;

    private final String password;

    private final Set<RoleDto> roles;

    private final boolean active;

字符串
第二:

@Builder
@Getter
@Value
public class UserDto {

    String id;

    String username;

    String email;

    String password;

    Set<RoleDto> roles;

    boolean active;


我的mapStruct接口:

@Mapper(componentModel = "spring")
public interface UserConverter {

    UserDocument toDocument(UserDto userDto);

    UserDto toDto(UserDocument userDocument);


MapStruct总是把我的boolean active转换为false。这是Lombok的问题吗?它生成getter isActive(),我不知道为什么它不工作。

gywdnpxw

gywdnpxw1#

请试试这个

@Mapper(componentModel = "spring")
public interface UserConverter {

    UserDocument toDocument(UserDto userDto);

    UserDto toDto(UserDocument userDocument);
    
    @Condition
    default boolean active(String value) {
        return value != null && !value.isEmpty();
    }
}

字符串

相关问题