枚举类型字段
枚举类型的字段,需要实现 EnumInterface 接口来被代码生成引擎所识别。
dodo采用枚举类型最佳实践:
(1)数据库字段生成为
int
类型,保存自定义的枚举类型数字常量:getSeq()
,而非ordinal()
(2)@ResponseBody 的返回对象中,包括枚举类型的字段时,自动被转化为
数字常量:getSeq()
,而非枚举类型的ordinal()
和name()
(3)枚举值在页面中,将会以下拉列表方式展示
例子:
/**
* 首先定义一个测试的枚举类型
**/
public enum DemoEnum implements EnumInterface {
VALUE1(1, "枚举值1"),
VALUE2(2, "枚举值2");
private DemoEnum(Integer seq, String name) {
this.seq = seq;
this.name = name;
}
private String name;
private int seq;
//枚举名称
@Override
public String getName() {
return name;
}
//枚举描述
@Override
public String getDesc() {
return null;
}
//数字常量
@Override
public Integer getSeq() {
return seq;
}
//国际化时候使用,显示名称的资源key,一般不用
@Override
public String getNameKey() {
return null;
}
//国际化时候使用,枚举描述的资源key,一般不用
@Override
public String getDescKey() {
return null;
}
//必须定义一个Converter,用于存储值和枚举值之间的转换
public static class Converter extends EnumAttributeConverter<DemoEnum> {
@Override
public Class<DemoEnum> getClazz() {
//返回当前枚举类型
return DemoEnum.class;
}
}
}
/**
* 实体类中使用
**/
public class BaseTypeDemo extends BaseEntity {
@DodoField(sortSeq = 13, name = "枚举类型字段")
private DemoEnum enumField;
//......
// 指定属性值转换器
@Convert(converter = DemoEnum.Converter.class)
public DemoEnum getEnumField() {
return enumField;
}
//......
效果图:
DML @ResponseBody 枚举值
当前内容版权归 DodoFramework 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 DodoFramework .