我有一个DTO。我不想在MapStruct中映射所有字段。

例如,User和UserDTO

public class UserDTO {

    private Long id;
    private String username;
    private String password;
    private String email;
    private boolean active;
    private String activationCode;
    private Set<Role> roles;

}


我有下一个映射器:

User fromUserDTO(UserDTO userDTO);


我不想映射ID,用户名,密码,电子邮件。我如何指出这些字段不会卡住?

User user = fromUserDTO(userDTO);

最佳答案

我找到了答案。


我可以忽略一个字段:


@Mapping(target = "id", ignore = true)
User fromUserDTO(UserDTO userDTO);



或者我可以忽略等于null的字段:


@Mapping(target="id", nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
User fromUserDTO(UserDTO userDTO);

关于java - MapStruct:如何过滤到我想要和不想映射的字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57969450/

10-08 22:30