相关疑难解决方法(0)

无法使用 MapStruct 从 Integer 映射 Enum

我在尝试从整数值映射到 ENUM 时遇到问题,我的方法映射它:

@Mapping(
      target = "myModel.states",// this is my ENUM
      source = "source.stateId") // this is the Integer Value
  ClsTargetModel mapCreditCard(ClsMyClass source);
Run Code Online (Sandbox Code Playgroud)

ENUM和实体模型:

实体:

@Getter
@Setter
@Entity
@Table(name = "my_table")
public class MyEntityModel {
  @Id
  @Column(name = "id")
  private Integer id;

  @Basic
  @Column(name = "description")
  private String description;
}
Run Code Online (Sandbox Code Playgroud)

枚举:

@Getter
@ToString
public enum EnumStates {
  STATE1(1),
  STATE2(2),
  STATE3(3);

  public Integer id;

  EnumStates(Integer id) {
    this.id = id;
  }

  public static EnumStates getStateById(Integer stateId) {
    return Arrays.stream(EnumStates.values())
        .filter(enumStateValue -> …
Run Code Online (Sandbox Code Playgroud)

java enums mapstruct

3
推荐指数
1
解决办法
1万
查看次数

如何使用mapstruct将枚举映射到布尔值?

我有一些自动生成的枚举,我需要映射到MapStruct映射器中的布尔值.它们是这样的:

enum YN {
    Y("Y"), N("N")
}

enum ZO {
    _0("0"), _1("1")
}
Run Code Online (Sandbox Code Playgroud)

我试过使用@ValueMappings(),但它不起作用:

@ValueMappings({
    @ValueMapping(source="Y", target=true),
    @ValueMapping(source="N", target=false)
)
Boolean map(YN value);
Run Code Online (Sandbox Code Playgroud)

我该如何实现这种映射?

java enums boolean mapstruct

2
推荐指数
1
解决办法
2836
查看次数

标签 统计

enums ×2

java ×2

mapstruct ×2

boolean ×1