mybatisPlus 枚举类注解 @EnumValue @JsonValue

2023-11-08

1,概要说明

创建枚举类,

在需要存储数据库的属性上添加@EnumValue注解,

在需要前端展示的属性上添加@JsonValue注解;

2,示例实践


public enum SexEnum {
 
    MAN(1, "男"),
    WOMAN(2, "女");
 
    @EnumValue
    private Integer key;
 
    @JsonValue
    private String display;
 
    SexEnum(Integer key, String display) {
        this.key = key;
        this.display = display;
    }
 
    public Integer getKey() {
        return key;
    }
 
    public String getDisplay() {
        return display;
    }
}

POJO中使用枚举类型标记字段


	@ApiModelProperty(value = "性别")
	private SexEnum sex;

测试使用


	@Test
    public void insert() {
        UserInfo userInfo = new UserInfo();
        userInfo.setAge(22);
        userInfo.setName("李四");
        userInfo.setSex(SexEnum.WOMAN);
        userInfoMapper.insert(userInfo);
        System.out.println(userInfo);
    }
    

数据中存储的值是key

在这里插入图片描述
前端显示

[
	{"id":"1","name":"张三","age":11,"sex":"男"},
	{"id":"2","name":"李四","age":22,"sex":"女"},
	{"id":"3","name":"王五","age":33,"sex":"男"}
]

以上内容原文链接:https://blog.csdn.net/linzhiji/article/details/109705536

3,几点思考

出现问题过程:

主要有2点原因:

1,前端的 sortable:true 排序有一个弊端,排序的逻辑顺序是先分页后排序,
但是这种逻辑在使用场景中是不合理的,所以这个属性仅仅适用于不分页的数据表格排序

2,由于使用@JsonValue注解,返回给前端的数据是中文,
而中文的排序逻辑:计算机先将中文转换为Unicode编码(当然这个看你编码方式),
然后按照编码进行排序,这样排序出来的数据可能不如其愿。

建议:

开发后期前端有对枚举进行排序需求的话,建议不要使用该枚举,按照传统方式使用:
数据库中存储key值,同时传递给前端的值也是key值,由前端对key值做转换处理

引申:排序

1,前端排序代码(先分页后排序)

// todo

2,后端排序代码(先排序后分页)

// todo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mybatisPlus 枚举类注解 @EnumValue @JsonValue 的相关文章

随机推荐

  • 华为MSTP负载均衡配置示例

    华为MSTP负载均衡配置示例 https www cnblogs com zhuimengle p 5906806 html MSTP负载均衡配置示例 本示例拓扑结构如图8 38所示 SwitchA SwitchB SwitchC和Swit
  • WEB-INF下的jsp不能访问的问题

    放在Tomcat WEB INF目录下的文件 image png 当浏览器访问Result jsp时 无法正常显示 通过了解才得知 原来Tomcat WEB INF目录下的文件 浏览器一般无法直接方法 只能通过重定向后才可以访问 如果需要直
  • 象棋对战js代码实现

    象棋对战js代码实现 思路 1 将棋盘设置为背景图片 对背景图片进行分割 分为9行10列的div块 每一块都是棋子的一个位置 2 对每一个div块设置onclick点击事件 每次点击div块都会调用判断棋子的走法是否合理的函数 pandua
  • Spark2.0特征提取、转换、选择之一:数据规范化,String-Index、离散-连续特征相互转换

    数据规范化 标准化 在数据预处理时 这两个术语可以互换使用 不考虑标准化在统计学中有特定的含义 下面所有的规范化操作都是针对一个特征向量 dataFrame中的一个colum 来操作的 首先举一个例子 MaxAbsScaler例子 参考后面
  • Unity基于C#事件委托机制

    事件委托是一种用于实现观察者模式的设计模式 它允许对象在发生特定事件时通知其他对象 在Unity中 事件委托机制为开发者提供了一种简单而有效的方式来处理游戏中的事件和交互 对啦 这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白
  • python算术运算符

    运算符 描述 实例 加 1 1 2 减 3 2 1 乘 2 3 6 除 4 2 2 取整除 返回除法的整数部分 商 9 2 4 取余数 返回除法的余数 9 2 1 幂 又称次方 乘方 2 3 8 算术运算符的优先级 运算符 描述 幂 最高优
  • 区块链的优缺点

    区块链的优点 一是难以篡改 更加安全 在传统信息系统的安全方案中 安全依赖于层层设防的访问控制 通过区块链技术 记录交易的数据库任何人都可以访问 但由于巧妙的设计并辅以密码学和共识机制 区块链的数据记录方式使得修改某一数据需要变更所有的后续
  • TypeError: cannot unpack non-iterable NoneType object

    python报错如下 TypeError cannot unpack non iterable NoneType object 解决方法 报错的原因是函数返回值得数量不一致 查看函数返回值数量和调用函数时接收返回值的数量是不是一致 修改一致
  • Java出现"此时不应有......."的错误

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 今晚在安装weblogic的时候 双击运行startWebLogic cmd dos窗口一闪而过 随后将 startWebLogic cmd 拖进cmd窗口运行 显示 此时
  • Android 不同版本通过mk拷贝并安装APK

    目录 前景 解决思路 注意事项 Android 11 Android 9 前景 工作中 有时APK通过系统编译的方式包进系统会丢失so库或者lib包 导致APK无法正常运行 但手动安装就不会出现这个问题 解决思路 可以使用一个取巧的方式解决
  • 无桥PFC的家族推演

    1 组合法构建无桥PFC PFC是一种AC DC变换器 将交流输入电压分成正负半周 输出电压是直流 因此AC DC变换器可以当做是两个DC DC变换器的组合 在PFC的拓扑推演中 就是设计两个DC DC变换器的工作模式 以下内容是基于对陈正
  • 遗传编程(GA,genetic programming)算法初探,以及用遗传编程自动生成符合题解的正则表达式的实践...

    1 遗传编程简介 0x1 什么是遗传编程算法 和传统机器学习算法有什么区别 传统上 我们接触的机器学习算法 都是被设计为解决某一个某一类问题的确定性算法 对于这些机器学习算法来说 唯一的灵活性体现在参数搜索空间上 向算法输入样本 算法借助不
  • i2c-core module could not be probed怎么解决啊

    求大佬帮忙看看 root PandoraBox A983 lib modules 3 14 79 uname a Linux PandoraBox A983 3 14 79 0 SMP Sat Sep 7 12 52 27 2019 arm
  • postman GET请求传Java实体,实体中又有对象实体数组

    controller代码接收参数如下 GetMapping getList ApiOperation 获取列表 public Object getList SearchListParam searchListParam return nul
  • 使用 Docker 运行简单的 python 程序

    以下是一个简单的 python 程序 用户输入一个最小值和最大值 输出二者之间的随机数 from random import randint min number int input Please enter the min number
  • 利用chatgpt实现三分钟快速制作自定义PPT

    目录 利用ChatGPT MindShow三分钟生成PPT 机器人 道合顺 莓用ai 百晓生 aichat 结合提词器以达到更好地提问效果 更好地提问ChatGPT 常用prompt表 小黄同学LL的博客 CSDN博客 举个栗子 利用Cha
  • 现代循环神经网络-门控循环单元(GRU)

    理论 门控隐状态 门控循环单元与普通的循环神经网络之间的关键区别在于 前者支持隐状态的门控 这意味着模型有专门的机制来确定应该何时更新隐状态 以及应该何时重置隐状态 这些机制是可学习的 并且能够解决了上面列出的问题 例如 如果第一个词元非常
  • stream().sorted 排序

    想用stream sorted 做双字段排序 list stream sorted Comparator comparing outObject gt outObject getinnerObject getAttribute revers
  • 责任链模式在项目中的引入使用

    责任链模式是一种设计模式 在责任链模式里 很多对象由每一个对象对其下家的引用而连接起来形成一条链 请求在这个链上传递 直到链上的某一个对象决定处理此请求 发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求 这使得系统可以在不影响客
  • mybatisPlus 枚举类注解 @EnumValue @JsonValue

    1 概要说明 创建枚举类 在需要存储数据库的属性上添加 EnumValue注解 在需要前端展示的属性上添加 JsonValue注解 2 示例实践 public enum SexEnum MAN 1 男 WOMAN 2 女 EnumValue