//枚举类
public enum AuditStatusEnums {
DFP(0,"待分配"),
DSH(1,"待审核"),
YSH(2,"已审核");
private Integer value;
private String msg;
AuditStatusEnums(Integer value,String msg){
this.value = value;
this.msg = msg;
}
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
@Override
public String toString(){
return msg;
}
//获取枚举实例
public static AuditStatusEnums fromValue(Integer value) {
for (AuditStatusEnums val : values()) {
if (val.getValue().equals(value)) {
return val;
}
}
throw new IllegalArgumentException();
}
//获取枚举实例
public static AuditStatusEnums fromMsg(String msg) {
for (AuditStatusEnums val : values()) {
if (val.getMsg().equals(msg)) {
return val;
}
}
throw new IllegalArgumentException();
}
}
//转换的工具类实现AttributeConverter接口
import javax.persistence.AttributeConverter;
public class EnumConvert implements AttributeConverter<String,Integer>{
@Override
public Integer convertToDatabaseColumn(String attribute) {
try {
Integer val = Integer.parseInt(attribute);
return AuditStatusEnums.fromValue(val).getValue();
}catch (NumberFormatException e){
return AuditStatusEnums.fromMsg(attribute).getValue();
}
}
@Override
public String convertToEntityAttribute(Integer dbData) {
return AuditStatusEnums.fromValue(dbData).getMsg();
}
}
在实体类中定义属性
给属性添加@Convert(converter = EnumConvert.class)
@Convert(converter = EnumConvert.class)
@Column(name = "auditStatus")
private String auditStatus;