当前位置: 首页 > article >正文

在使用mybatis时遇到枚举的相关问题和解决

目录

1.前言

2.问题解决 

2.1 在父依赖中添加版本管理

 2.2 微服务中引入依赖

2.3 在application.yaml中进行配置

2.4 在枚举中添加注解 


1.前言

今天在使用mybatis的时候,如下SQL查询遇到了报错(其中status为枚举类型,数据库中存的为整形):

select id, avatar, username, password, phone, status from user where phone = #{phone} 

Error attempting to get column 'status' from result set. Cause: java.lang.IllegalArgumentException: No enum constant com.shop.user.enums.UserStatus.1] with root cause

发现原因是mybatis无法正常处理我的枚举类型,如下 :

public enum UserStatus {
    FROZEN(0, "禁止使用"),
    NORMAL(1, "已激活"),
    ;
    int value;
    String desc;

    // 其它代码
}

2.问题解决 

看了一些博客,也问了gpt,原生的mybatis处理起来确实比较麻烦,所有我选择mybatis plus,它仅仅需要一个注解就能完美解决问题,顺带也解决了select只查询一部分字段的问题。我的项目为springcloud项目,下面是我的解决方法。

2.1 在父依赖中添加mybatis plus版本管理

<!-- mybatis plus 管理 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>

 2.2 微服务中引入依赖

<!-- mybatis plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>

2.3 在application.yaml中进行配置

mybatis-plus:
  configuration:
    default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler

2.4 在枚举中添加注解 

public enum UserStatus {
    FROZEN(0, "禁止使用"),
    NORMAL(1, "已激活"),
    ;
    @EnumValue
    int value;
    String desc;

    // 其它代码
}

http://www.kler.cn/a/593747.html

相关文章:

  • The method precision() is undefined for the type BigInteger
  • 二分查找------查找区间
  • AI全天候智能助手,为您构建私人数据库
  • 达芬奇预设:创意现代抽象动态海报活力动态文字标题排版设计视觉预设 MotionVFX – mTitle Hype DVR
  • VLLM专题(三十九)—自动前缀缓存(二)
  • linux性能监控的分布式集群 prometheus + grafana 监控体系搭建
  • 让vscode远程开发也可以图形显示
  • nuxt项目 详情页有阅读次数需要更新,有热门推荐列表需要更新适合做SSG吗
  • 【C++指南】string(三):basic_string底层原理与模拟实现详解
  • 【MyDB】6-TabelManager 字段与表管理 之1-TBM实现思路概览
  • 江小南的题目讲解
  • Vala编程语言教程-语言元素
  • 轮足式机器人运动控制系统设计(大纲)
  • 过程监控——lsof
  • DeepSeek(8):结合Kimi-PPT助手一键生成演示报告
  • 【智能体】| 知识库、RAG概念区分以及智能体是什么
  • Steam游戏实时数据获取API集成文档
  • 从两指到三指:Robotiq机器人自适应夹持器技术解析
  • 将COCO格式的物体检测数据集划分训练集、验证集和测试集
  • Word 小黑第34套