我在尝试从整数值映射到 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) 我有一些自动生成的枚举,我需要映射到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)
我该如何实现这种映射?