我正在使用ModelMapper将实体转换为dto,但我们有一个要求,即多个消费者将使用相同的端点,因此,我们必须根据消费者限制字段。
例如:
Consumer 1 -> fullName, aadharNo, other details...
Consumer 2 -> fullName, passportNo, other details...
Consumer 3 -> fullName, drivingLicenceNo
Consumer 4-> All fields
public class Student {
private String fullName;
private String aadharNo;
private String passportNo;
private String drivingLicenceNo;
private String age;
private String schoolName;
private String collegeName;
private String grade;
private String schoolMark;
}
public class StudentDto {
private String fullName;
private String aadharNo;
private String passportNo;
private String drivingLicenceNo;
private String age;
private String schoolName;
private String collegeName;
private String grade;
private String schoolMark;
}
我尝试过为同一个模型Map器使用多个typeMap,但是一旦在modelmapper中定义了typeMap,就无法覆盖它。
属性Map示例:
PropertyMap<Student , StudentDto> skipModifiedFieldsMap = new PropertyMap<Student , StudentDto>() {
protected void configure() {
//skip().setAadharNo(null);
}
};
你能不能建议一些好的方法来实现它。任何库都可以。
2条答案
按热度按时间mfpqipee1#
您是否尝试使用条件Map?
这将允许您为不同的使用者创建不同的条件,并相应地Map。
xv8emn3q2#
可以通过使用
typeMapName
来实现所需的行为配置命名Map
使用命名Map
遗憾的是,ModelMapper user manual中未提及此功能