高级用法
王爵 nice edited this page Sep 18, 2018
·
2 revisions
如果你在一个数据库实体中想用枚举来和数据库的字段相匹配,Anima 做了一定的支持。假设有一个表 persons
,其中包含一个字段 vip_level
,
对应的枚举类型如下:
@Getter
@EnumMapping("code")
public enum VipLevel {
VIP1(1, "初级会员"),
VIP2(2, "高级会员"),
VIP3(3, "至尊会员");
private int code;
private String desc;
VipLevel(int code, String desc) {
this.code = code;
this.desc = desc;
}
}
Person
实体如下:
@Data
public class Person extends Model {
private String name;
@Column(name = "sex")
private Gender gender;
private VipLevel vipLevel;
}
在实体中只是正常使用枚举变量即可,需要注意的是在枚举类型上面添加了一个注解 EnumMapping
。
该注解用于标识枚举中的哪个字段会存储在数据库中,因为枚举的构造函数是可以有多个入参的,所以框架无法确定谁是存储在数据库中的,
使用注解明确指定枚举中的 变量名 即可。
如果你觉得默认内置的转换器无法满足你的需求,可以自定义转换器,使用如下方法:
Anima.open("").addConverters(new YoutConverter());
Contributing
Documentation
- Getting started
- Create Model
- Query DB
- Save to DB
- Updates and Deletes
- Transaction
- Integration with Spring
- Advanced Usage
Other resources
中文文档