//枚舉類
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;