【问题标题】:Field mapping with MapStruct by JsonProperty annotation通过 JsonProperty 注释使用 MapStruct 进行字段映射
【发布时间】:2021-09-08 06:40:18
【问题描述】:

在我当前的项目中,模型类字段的名称是德语。这些字段都标有@JsonProperty,用于名称的英文翻译。例如。 @JsonProperty(value = "operation")。配置中有没有办法使用JsonProperty注解完成字段映射?

例子:

public class Auftrag {

  @JsonProperty(value = "orderType")
  private String auftragsart;

  ...
}

public class OrderDto {
    
    private String orderType;
}

【问题讨论】:

    标签: java mapstruct


    【解决方案1】:

    MapStruct 使用 Java Bean 约定来检测属性。这意味着它在 getter 和 setter 中查找。

    开箱即用您不能使用@JsonProperty。但是,您可以创建自己的AccessorNamingStrategy,它将提供基于@JsonProperty 的属性。 AccessorNamingStrategy 让您可以访问抽象语法树,这意味着您可以在类型中查找字段、检查它们的注释并检查它们的值。

    请记住,MapStruct 只会要求获取方法的属性,因此您需要获取属性名称,然后在类型中查找字段,然后查找 @JsonProperty 注释及其值。

    您可以在文档中阅读有关 AccessorNamingStrategy here 的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 2021-11-22
      • 2022-12-14
      • 2018-01-23
      相关资源
      最近更新 更多