环境搭建
枚举类
StatusEnum
code是String类型
@AllArgsConstructor
@Getter
public enum StatusEnum {
DEFAULT("DEFAULT");
@JsonValue
public String getCode() {
return this.name();
}
private final String label;
public static StatusEnum valueOfCode(String code) {
return valueOf(code);
}
}
SexEnum
code是int类型
@AllArgsConstructor
@Getter
public enum SexEnum {
UNKNOWN(0, "Unknown"),
MALE(1, "Male"),
FEMALE(2, "Female");
private static final Map<Integer, SexEnum> codeMap = new HashMap<>();
static {
for (SexEnum e : values()) {
codeMap.put(e.code, e);
}
}
private final int code;
private final String label;
@JsonValue
public int getCode() {
return this.code;
}
public static SexEnum valueOfCode(int code) {
return codeMap.get(code);
}
}
枚举中必须包含静态方法 valueOfCode
和 方法 getCode
。
实体类
@Data
@ToString
@Builder
@TableName("t_project")
@NoArgsConstructor
@AllArgsConstructor
public class Project {
@Id
private Long id;
private SexEnum sex;
private StatusEnum status;
测试
@Test
public void testSave() {
Project project = new Project();
project.setSex(SexEnum.FEMALE);
project.setStatus(StatusEnum.DEFAULT)
projectDAO.insert(project);
Assert.assertNotNull(project.getId());
}
@Test
public void testFindById() {
Optional<Project> optional = projectDAO.selectById(479411923147194368L);
Project project = optional.get();
Assert.assertEquals(SexEnum.FEMALE, project.getSex());
Assert.assertEquals(SexEnum.DEFAULT project.getStatus());
}