java - MapStruct:如何过滤我想要和不想映射的字段?
问题描述
我有一个 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);
推荐阅读
- embedded - 如何使用来自 Q4X 模拟激光传感器的电压计算距离
- python-3.x - 启动不同的脚本作为线程知道脚本的名称
- c++ - 变量模板的显式特化
- swift - SwiftUI:类似 UITextField 的属性
- angular - 在 Angular 中获取选定的名称选项卡
- javascript - 一次下载两个 URL,但在一个完成后立即处理
- json - 在颤振中使用 REST API 将新用户添加到 wordpress
- python - C++ 和 Python 实现之间的不同伪随机数
- mysql - mysqldump后mysql数据库大小不同?
- spring - 如何在 JPA 中获取“按区域计算实体”的列表?