ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

spring-data-jpa使用枚举类

2022-07-05 10:34:56  阅读:176  来源: 互联网

标签:String ReleaseState jpa spring state private springMVC 枚举 data


在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;

 

标签:String,ReleaseState,jpa,spring,state,private,springMVC,枚举,data
来源: https://www.cnblogs.com/wangbin2188/p/16445462.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有