返回顶部
首页 > 资讯 > 后端开发 > Python >使用JPA插入枚举类型字段
  • 620
分享到

使用JPA插入枚举类型字段

2024-04-02 19:04:59 620人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录JPA插入枚举类型字段1. 插入枚举名称的值,即字符串2. 插入枚举的序号,即ordinal3.插入枚举中的自定义值JPA枚举类型处理JPA插入枚举类型字段 JPA插入枚举类型字

JPA插入枚举类型字段

JPA插入枚举类型字段,有三种方式:

  1. 插入枚举字面值
  2. 插入枚举序号
  3. 插入枚举中自定义的值

例如,我们有个枚举类:

public enum Gender {
    BOY("1" , "boy" , "Boy");
    GIRL("2" , "girl" , "Girl");
 
    private int value;
    private String s1;
    private String s2;
    //....省略
}

1. 插入枚举名称的值,即字符串

将BOY或GIRL存入表中,实体类字段如下:

public class Staff {
    @Enumerated(EnumType.STRING)
    private Gender gender;
    //...省略
}

2. 插入枚举的序号,即ordinal

ordinal的意思就是你在类中定义枚举的顺序,从0开始。这种方式并不常用,不清楚同学修改了枚举类容易导致业务异常。

而且JPA默认的方式(不加@Enumerated注解)就是这种。

例如将BOY存入表中,这种方式将存入0。将GIRL存入表中,这种方式将存入1;

public class Staff {
    @Enumerated(EnumType.ORDINAL)
    private Gender gender;
    //...省略
}

3.插入枚举中的自定义值

例如:

public enum Gender {
    BOY("1" , "boy" , "Boy");
    Girl("2" , "girl" , "Girl");
 
    private int value;
    private String s1;
    private String s2;
    //....省略
}

如果想将BOY的数字1或者 “boy” 或者“Boy”存入表中,JPA默认是不支持的,需要自定义一个类实现特定接口: implements AttributeConverter<X,Y>。

以代码为例,详看注释,假如我想将BOY的1存入表中:

public class GenderConverter implements AttributeConverter<Gender, Integer>{
    
    @Override
    public Integer convertToDatabaseColumn(Gender attribute) {
        if(attribute == null){
            throw new RuntimeException("Unknown Gender text : " + attribute);
        }
        return attribute.getValue();
    }
 
    
    @Override
    public Gender convertToEntityAttribute(Integer dbData) {
        for(Gender s : Gender.values()){
            if(s.getValue() == (dbData)){
                return s;
            }
        }
        throw new RuntimeException("Unknown Gender text : " + dbData);
    }
}

实例类:

public class Staff {
    
   
    @Convert(converter = GenderConverter.class)
    private Gender gender;
    //...省略
}

JPA枚举类型处理


public enum Sex {
    MALE,
    FEMALE
}

@Enumerated(EnumType.STRING)
public Sex getSex() {
    return sex;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 使用JPA插入枚举类型字段

本文链接: https://lsjlt.com/news/151054.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用JPA插入枚举类型字段
    目录JPA插入枚举类型字段1. 插入枚举名称的值,即字符串2. 插入枚举的序号,即ordinal3.插入枚举中的自定义值JPA枚举类型处理JPA插入枚举类型字段 JPA插入枚举类型字...
    99+
    2024-04-02
  • vue3声明字段名为枚举的类型详解
    目录vue3声明字段名为枚举类型下面是Type的枚举声明,共有6个字段vue使用提升之"枚举"应用方式一(适用于简易过滤器中)方拾二(过滤器,循环列表)vue3声...
    99+
    2024-04-02
  • jpa使用@Column来定义字段类型
    目录jpa @Column定义字段类型jpa使用注解 设定字段类型为TEXT类型jpa @Column定义字段类型 columnDefinition 实在是比较万能,不好定义或者没有...
    99+
    2024-04-02
  • C#枚举类型怎么使用
    本篇内容介绍了“C#枚举类型怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#枚举,枚举是一种值类型,由许多名字的常量(也叫枚举表)...
    99+
    2023-06-17
  • 使用spring注入枚举类型作为参数
    目录spring注入枚举类型作为参数Spring参数注入1、通过构造方法实现参数注入2、通过set方法注入3、P命名空间注入spring注入枚举类型作为参数 //定义枚举类型 p...
    99+
    2024-04-02
  • mysql枚举类型enum怎么使用
    在MySQL中,枚举类型(enum)用于定义一个可以选择的值列表。enum类型可以在创建表时定义,也可以在已存在的表中添加。下面是创...
    99+
    2023-08-30
    mysql
  • c++枚举类型enum怎么使用
    在C++中,枚举类型(enum)用于定义一组具有离散值的常量。它可以用来提高代码的可读性和可维护性。以下是使用枚举类型的基本语法:`...
    99+
    2023-10-10
    c++
  • 怎么使用MyBatis的枚举类型
    在使用MyBatis的枚举类型时,需要按照以下步骤进行操作: 创建枚举类:首先需要创建一个枚举类来表示需要使用的枚举类型,比如: ...
    99+
    2024-03-08
    MyBatis
  • Java枚举类型与泛型使用解读
    目录一、枚举类型1、使用枚举类型设置常量2、枚举类型常用方法3、枚举类型中的构造方法二、泛型1、泛型的常规用法2、泛型的高级用法总结一、枚举类型 1、使用枚举类型设置常量 以往设置常...
    99+
    2022-12-28
    Java枚举类型 Java泛型 Java枚举类型与泛型
  • jpa如何使用@Column来定义字段类型
    这篇文章将为大家详细讲解有关jpa如何使用@Column来定义字段类型,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jpa @Column定义字段类型columnDefinition 实在是比较万能,不好...
    99+
    2023-06-21
  • C#枚举类型怎么用
    这篇文章主要为大家展示了“C#枚举类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#枚举类型怎么用”这篇文章吧。C#枚举类型使用的时候需要掌握的有哪些方面呢?首先我们来看看一个例子:p...
    99+
    2023-06-17
  • C#枚举类型的应用
    这篇文章主要讲解了“C#枚举类型的应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的应用”吧!C#枚举类型应用是怎么样的呢?首先我们来看看几个问题:◆C#枚举类型与基础类型的转...
    99+
    2023-06-17
  • 如何在mysql中使用枚举类型
    小编给大家分享一下如何在mysql中使用枚举类型,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!枚举类型在mysql的使用方法:1...
    99+
    2024-04-02
  • C# 枚举类型的声明和使用
    目录前言相关介绍一、枚举声明二、声明位置三、枚举使用总结前言 学习记录下枚举的声明和使用,枚举可用来规范开发 文章中代码的项目名为Project1,C#类名为Class1 相关介...
    99+
    2024-04-02
  • C++11中强类型枚举的使用
    目录1.C/C++98中的枚举的缺陷2.强类型枚举的使用1.C/C++98中的枚举的缺陷 枚举在C语言中是狠古老的类型,它分为匿名枚举和具名枚举,如果是匿名枚举,那么它的用法只有一种...
    99+
    2023-02-02
    C++11 强类型枚举
  • C#中的枚举类型怎么使用
    在C#中,枚举类型用于定义一组命名的整数常量。以下是枚举类型的基本用法示例: // 定义一个枚举类型 public enum Day...
    99+
    2024-04-03
    C#
  • 【Java系列】深入解析枚举类型
    序言 即便平凡的日子仿佛毫无波澜,但在某个特定的时刻,执着的努力便会显现出它的价值和意义。 希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流 问题 思考一下这寄个问题,我们将围绕...
    99+
    2023-09-01
    java 开发语言 枚举
  • Python中使用枚举类
    开发中我们经常定义常量, 其实有更好的方法:为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。Python中提供了Enum类来实现这个功能: from enum import Enum Numbers...
    99+
    2023-01-31
    Python
  • python枚举类型定义与使用讲解
    目录1.定义2.使用3.枚举构造器1.定义 在某些情况下,一个类的对象是有限且固定的,比如季节类,它只有 4 个对象;再比如行星类,目前只有 8 个对象。这种实例有限且固定的类,在 ...
    99+
    2024-04-02
  • SpringBootEntity中枚举类型详细使用介绍
    目录简介方案对比枚举用法示例建表EntityEnumControllerServiceMapper测试1.正常操作2.前端传空字符串3.前端传null简介方案对比 本处列举表示类型或...
    99+
    2022-11-13
    SpringBoot Entity SpringBoot Entity枚举
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作