spring-data-jpa使用枚举类
在Java开发中,枚举类有很重要的功能。
一、springMVC和枚举
但是springMVC并不支持将请求中的字符串自动转换成枚举对象。
在网上搜了很多资料,发现将value字符串转成枚举对象,都需要经过很多配置才能实现。
但是发现如果传递的字符串正好就是枚举对象的字面量,springMVC不经过特别配置就能转成对象。
就比方下面这个类,MqOperate和ReleaseState都是枚举类
@NoArgsConstructor @Data public class ProcessReleaseRequest { private MqOperate operate; private String projectCode; private String jobName; private String ownership; private String description; //"online/offline" private ReleaseState state; }
枚举类的内容
public enum ReleaseState { OFFLINE(0, "offline"), ONLINE(1, "online"); }
那么想让springMVC直接将state转换成ReleaseState,前端传递的时候state必须是ONLINE或OFFLINE这种格式。
二、hibernate实体类中使用枚举
既然我们已经可以从前端拿到枚举类了,那么我们希望存入数据库的时候,实体对象也支持枚举类。
下面是一个典型的实体类对象,他有一个枚举类型TaskType,我们使用了hibernate的注解@Enumerated标识这是个枚举类,
后面的参数标识在序列化的时候不是要把下标存入数据库,而是要把枚举类的string格式入库。
@Data @Entity @Table(name = "task_info") public class TaskInfo implements Serializable { private static final long serialVersionUID = 8247978712837006424L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; String description; @ApiModelProperty("任务类型") @Enumerated(value = EnumType.STRING) private TaskType taskType;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
2021-07-05 springboot设置定时任务(2)