【问题标题】:BeanMapping: Replace value in set within mapping expression?BeanMapping:在映射表达式中替换集合中的值?
【发布时间】:2022-08-09 03:04:25
【问题描述】:

我有一个字符串 Set I\'m 映射到一个用于 PDF 表单内容提取的 bean:

@Mapping(target = \"targetFieldName\", expression = \"java(contentMapperService.convertStringToSet(pdfFieldsMap.get(\\\"PDF_field_name\\\")))\")

假设来自 PDF 字段的输入字符串是 \"apple,banana\"

如果我们找到值 \"apple\",我们希望在集合映射到目标之前将其替换为 \"apples\"。

这可以在表达式中完成吗?

    标签: java spring mapstruct


    【解决方案1】:

    您可以使用您的特定逻辑创建一个方法并在表达式中使用它

    因为你没有提供映射器,以这个为例。

    @Mapper(componentModel = "spring")
    public interface MyMapper {
    
        @Mapping(target = "targetFieldName", source = "pdfFieldName", qualifiedByName = "setTargetFieldName")
        Target toTarget(Source source);
    
        @Named("setTargetFieldName") 
        default String setTargetFieldName(String pdfFieldName){
            return pdfFieldName.replace("apple", "apples");
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多