MapStruct DTO 属性
MapStruct DTO property
我需要在我的 DTO 上有一个像 idEncrypted 这样的 属性,因为它们只能通过加密传递给我,但是,我需要映射我在 DB 上找到的解密 ID。我已经有一个解密方法,但我不知道如何映射它并忽略 idEncrypted。
@Data
@EqualsAndHashCode(callSuper=false)
@NoArgsConstructor
public class MyDTO {
private String idEncrypted;
...
...
}
我不知道在哪里做转换
idDecrypted = Long.parseLong(MyUtils.decrypt(idEncrypted));
您可以编写自己的自定义限定方法来进行解密。
例如
@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;
}
}
我需要在我的 DTO 上有一个像 idEncrypted 这样的 属性,因为它们只能通过加密传递给我,但是,我需要映射我在 DB 上找到的解密 ID。我已经有一个解密方法,但我不知道如何映射它并忽略 idEncrypted。
@Data
@EqualsAndHashCode(callSuper=false)
@NoArgsConstructor
public class MyDTO {
private String idEncrypted;
...
...
}
我不知道在哪里做转换
idDecrypted = Long.parseLong(MyUtils.decrypt(idEncrypted));
您可以编写自己的自定义限定方法来进行解密。
例如
@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;
}
}