我正在使用ModelMapper并尝试在实体(源)和DTO(目标)之间进行映射。该实体与其他实体有关系,而DTO没有这些关系。
// Entity
public class UsersEntity extends AuditedEntity<String> implements Serializable {
private Long id;
private String firstName;
private String lastName;
// Relationships
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name = "UsersPermissions", schema = "dbo",
joinColumns = {@JoinColumn(name = "UserId", referencedColumnName = "Id")},
inverseJoinColumns = {@JoinColumn(name = "PermissionId", referencedColumnName = "Id")})
private Set<PermissionsEntity> permissions = new HashSet<>();
@ManyToOne
@JoinColumn(name = "RoleId")
private RolesEntity role;
//Getters and Setters ommitted for brevity
}
// DTO
public class FindUserByIdOutput {
private Long id;
private String firstName;
private String lastName;
}
当我尝试使用进行转换
modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
java.lang.reflect.Type targetListType = new TypeToken<Page<FindUserByIdOutput>>() {}.getType();
modelMapper.map (Page<UsersEntity>, targetListType)
映射的目的地
targetListType (Page<FindUserByIdOutput>)
具有权限和角色源属性。权限属性设置为null,角色属性设置为角色的实际值。
我想要的是完全忽略目标中的两个源属性,即权限和角色。
关于如何实现此目标的任何想法?