在MyBatis中,如何将数据库中的字符串类型映射为枚举类型?

在MyBatis中,如何将数据库中的字符串类型映射为枚举类型?

网上看了很多教程。说了很多,但是都没说到重点!

很简单,xml文件中,··· 使用resultType,而不是使用resultMap就可以了。

 

resultType="org.jeecg.modules.hc.entity.HcMainCategories">

源码:

Entity


/*** 名称*/@Excel(name = "名称", width = 15)@ApiModelProperty(value = "名称")private java.lang.String name;/*** 排序*/@Excel(name = "排序", width = 15)@ApiModelProperty(value = "排序")private java.lang.Integer sort;/*** 状态*/@Excel(name = "状态", width = 15)@ApiModelProperty(value = "状态")private HcUpFlagEnum state;

Xml

 
<resultMap id="BaseResultMap" type="org.jeecg.modules.hc.entity.HcMainCategories"><id property="id" column="ID" jdbcType="VARCHAR"/><result property="createBy" column="CREATE_BY" jdbcType="VARCHAR"/><result property="createTime" column="CREATE_TIME" jdbcType="TIMESTAMP"/><result property="updateBy" column="UPDATE_BY" jdbcType="VARCHAR"/><result property="updateTime" column="UPDATE_TIME" jdbcType="TIMESTAMP"/><result property="icon" column="ICON" jdbcType="VARCHAR"/><result property="name" column="NAME" jdbcType="VARCHAR"/><result property="sort" column="SORT" jdbcType="BIGINT"/><result property="state" column="STATE" jdbcType="VARCHAR"/></resultMap><sql id="Base_Column_List">ID,CREATE_BY,CREATE_TIME,UPDATE_BY,UPDATE_TIME,ICON,NAME,SORT,STATE</sql><select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">select<include refid="Base_Column_List" />from hc_main_categorieswhere ID = #{id,jdbcType=VARCHAR}</select><!--根据地址ID查询主营品类--><select id="selectByAddressId" resultType="org.jeecg.modules.hc.entity.HcMainCategories">select distinctd.ID,d.CREATE_BY,d.CREATE_TIME,d.UPDATE_BY,d.UPDATE_TIME,d.ICON,d.NAME,d.SORT,d.STATEfromhc_site_address_details aleft join hc_site_relation b on b.SITE_ID = a.SITE_IDleft join hc_main_relation c on c.MERCHANT_ID = b.MERCHANT_IDleft join hc_main_categories d on d.ID = c.MAIN_CATEGORIES_IDwherea.ID = #{vo.id} and d.STATE = 'yes'</select>

Column 'ID' in field list is ambiguous;

SELECT ID, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, ICON, NAME, SORT, STATE FROM hc_site_address_details a LEFT JOIN hc_site_relation b ON b.SITE_ID = a.SITE_ID LEFT JOIN hc_main_relation c ON c.MERCHANT_ID = b.MERCHANT_ID LEFT JOIN hc_main_categories d ON d.ID = c.MAIN_CATEGORIES_ID WHERE a.ID = ?

### Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'ID' in field list is ambiguous

; Column 'ID' in field list is ambiguous;

nested exception is java.sql.SQLIntegrityConstraintViolationException: Column 'ID' in field list is ambiguous] with root cause

java.sql.SQLIntegrityConstraintViolationException: Column 'ID' in field list is ambiguous

----

错误原因:

··· Base_Column_List中的字段没有加上别名d.

<sql id="Base_Column_List">ID,CREATE_BY,CREATE_TIME,UPDATE_BY,UPDATE_TIME,ICON,NAME,SORT,STATE
</sql><select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">select<include refid="Base_Column_List" />from hc_main_categorieswhere  ID = #{id,jdbcType=VARCHAR}
</select>
<select id="selectByAddressId" resultType="org.jeecg.modules.hc.entity.HcMainCategories">select distinctd.ID,d.CREATE_BY,d.CREATE_TIME,d.UPDATE_BY,d.UPDATE_TIME,d.ICON,d.NAME,d.SORT,d.STATEfromhc_site_address_details aleft join hc_site_relation b on b.SITE_ID = a.SITE_IDleft join hc_main_relation c on c.MERCHANT_ID = b.MERCHANT_IDleft join hc_main_categories d on d.ID = c.MAIN_CATEGORIES_IDwherea.ID = #{vo.id} and d.STATE = 'yes'
</select>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/690912.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react18【系列实用教程】useContext —— Context 机制实现越层组件传值 (2024最新版)

什么是 Context 机制&#xff1f; Context 机制是 react 实现外层组件向内层组件传值的一种方案&#xff0c;父组件可以向其内部的任一组件传值&#xff0c;无论是子组件还是孙组件或更深层次的组件。 实现步骤 1.使用createContext方法创建一个上下文对象 Ctx 2.在顶层组件中通…

初始Java篇(JavaSE基础语法)(8)认识String类(上)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaSE 简单介绍&#xff1a;在C语言中已经涉及到字符串了&#xff0c;但是在C语言中要表示字符串只能使用字符数组或者字符指针&#xff0c;可…

Kivy UI界面

一、版本介绍 Ubuntu&#xff1a;18.04.6 LTS Conda&#xff1a;4.5.12 Python&#xff1a;3.6.15 Kivy&#xff1a;2.0.0 二、安装Kivy # 更新系统包列表 sudo apt-get update# 安装Kivy的依赖项 sudo apt-get install -y python-pip libsdl2-dev libsdl2-image-dev li…

Docker私有仓库Harbor

简介 Docker私有仓库Harbor是一个开源的、企业级的Docker registry解决方案&#xff0c;它提供了安全、可靠和高效的容器镜像存储和分发服务。以下是关于Docker私有仓库Harbor的详细介绍&#xff1a; 一、Harbor的特点 基于角色的访问控制&#xff08;RBAC&#xff09;&#…

ADS基础操作篇2

上篇文章《ADS基础介绍篇1》,对ADS界面,常用小工具及自带设计模板进行了介绍。ADS使用非常方便,含大量的控件和仿真模板。这篇文章我们主要讲解ADS的基础操作,包含Workspace、原理图、symbol的创建,仿真结果查看及优化。 1. 新建Workspace 添加名称及路径后,点击create…

水电站泄洪安全声光预警广播系统建设方案

一、水电站泄洪安全声光预警广播系统建设方案背景 水电站建成运行以后&#xff0c;会使河道水文情势发生改变&#xff0c;为了加强水电站工程安全管理&#xff0c;保证水库泄洪放水工作安全有序进行&#xff0c;保护下游河道沿岸人民群众生命和财产安全&#xff0c;根据《中华…

FreeRTOS事件组

什么是事件标志组? 事件标志位 :表明某个事件是否发生,联想:全局变量 flag 。通常按位表示,每一个位表示一个事件(高8 位不算) 事件标志组 是一组事件标志位的集合, 可以简单的理解事件标志组,就是一个整数。 事件标志组本质是一个 16 位或 32 位无符号的数据类型…

光伏无人机巡检都有哪些功能?

随着光伏产业的快速发展&#xff0c;光伏电站的巡检工作变得越来越重要。然而&#xff0c;传统的人工巡检方式面临着效率低下、安全隐患大等问题。为了应对这些挑战&#xff0c;光伏无人机巡检应运而生&#xff0c;以其独特的优势在光伏巡检领域发挥着越来越重要的作用。本文将…

Ansible的安装与配置

Ansible的安装与配置 1. 安装ansible # ansible是epel源提供的&#xff0c;所以必须安装epel&#xff1a; [rootRocky9 ~]# yum -y install epel-release Last metadata expiration check: 0:01:53 ago on Tue 26 Dec 2023 10:05:34 PM CST. Dependencies resolved. Package …

蓝桥杯-地宫取宝

X 国王有一个地宫宝库&#xff0c;是 nm 个格子的矩阵&#xff0c;每个格子放一件宝贝&#xff0c;每个宝贝贴着价值标签。 地宫的入口在左上角&#xff0c;出口在右下角。 小明被带到地宫的入口&#xff0c;国王要求他只能向右或向下行走。 走过某个格子时&#xff0c;如果那个…

生信人写程序1. Perl语言模板及配置

生物信息领域常用语言 个人认为&#xff1a;是否能熟悉使用Shell(项目流程搭建)R(数据统计与可视化)Perl/Python/Java…(胶水语言&#xff0c;数据格式转换&#xff0c;软件间衔接)三门语言是一位合格生物信息工程师的标准。 生物信息常用语言非常广泛&#xff0c;我常用的有…

vue2中npm i报错gyp info it worked if it ends with ok

当我拿到一个老的vue2项目&#xff0c;怎么也起不起来&#xff0c;后来找到报错原因&#xff0c;如上图所示&#xff0c;可以看到报错的path是node-sass&#xff0c;那么就猜想应该是sass版本和node版本不匹配。 于是我查看了我的node版本是16 而sass版本是下图所示&#xff0c…