Java MapStruct DTO属性

Java MapStruct DTO属性,java,mapping,dto,mapstruct,Java,Mapping,Dto,Mapstruct,我需要在我的DTO上有一个属性,比如idEncrypted,因为它们只能通过加密传递给我,但是,我需要映射在DB上找到的解密id。我已经有了一个解密方法,但我不知道如何映射它并忽略已加密的IDEN @Data @EqualsAndHashCode(callSuper=false) @NoArgsConstructor public class MyDTO { private String idEncrypted; ... ... } 我不知道在哪里做转换 pr

我需要在我的DTO上有一个属性,比如idEncrypted,因为它们只能通过加密传递给我,但是,我需要映射在DB上找到的解密id。我已经有了一个解密方法,但我不知道如何映射它并忽略已加密的IDEN

@Data
@EqualsAndHashCode(callSuper=false)
@NoArgsConstructor
public class MyDTO {  

    private String idEncrypted;

    ...
    ...

}
我不知道在哪里做转换

private Long idDecrypted = Long.parseLong(MyUtils.decrypt(idEncrypted));

您可以编写自己的自定义限定方法来进行解密

e、 g

@Mapper
public MyMapper {

    @Mapping(target = "id", source = "idEncrypted", qualifiedByName = "decryptId")
    MyEntity map(MyDTO dto);

    @Named("decryptId")
    default Long decryptId(String id) {
        return id != null ? Long.parseLong(MyUtils.decrypt(id)) : null;
    }
}