JPA关于枚举类型的处理

作者: Devid | 来源:发表于2016-03-30 16:44 被阅读3247次

当我们使用jpa处理枚举类型的自定义查询时,可以这么干:

将枚举的字符串形式存储到数据库中

首先在model中指定枚举类型以字符串的形式存储:(@Enumerated(EnumType.STRING)注解处理)

@Enumerated(EnumType.STRING)
@Column(name="status")
private Status status;

这样当我们插入数据时,数据库里会在status列以字符串的形式存储值,如:

public static enum Status{
    PREPARE("PREP"),INPROGRESS("INPR"),FINISH("FNSH");

    private String code;
    private Status(String code){
        this.code=code;
    }
    @Override
    public String toString(){
        return code;
    }   
    public static Status parseCode(String code){
        for(Status s:Status.values()){
            if(s.code.equalsIgnoreCase(code))return s;
        }
        return null;
    }
}

对应数据库status列会存储PREPAREINPROGRESSFINISH,而不是以0、1、2的方式进行存储了。

如何使用@Query做自定义查询

当我们使用@Query做针对枚举的自定义查询时,方法也很简单,如下:

@Query("from Period where status != 'FINISH' order by beginDate desc")

其中FINISH即对应Status.FINISH枚举项,注意在查询语句上不要忘记加“单引号”!

相关文章

  • JPA关于枚举类型的处理

    当我们使用jpa处理枚举类型的自定义查询时,可以这么干: 将枚举的字符串形式存储到数据库中 首先在model中指定...

  • SpringBoot 入门笔记(七)自定义枚举类型

    定义枚举类 在抛出异常中使用枚举类型 异常处理类中接受枚举类型

  • WWDC2015Session106What's New

    新特性:基本类型、类型匹配、可检查性、协议扩展、错误处理 基本类型 枚举 在枚举中加入类型: 递归枚举递归枚举中需...

  • C语言基础 之 枚举类型

    枚举类型 枚举类型: 列出所有可能的值 枚举类型的定义 枚举类型定义的一般格式:enum 枚举类型名 {枚举值表}...

  • Swift 基础笔记 - 枚举

    枚举 OC定义和使用枚举 Swift定义枚举类型 Swift判断枚举类型 枚举成员类型

  • 枚举类型总结

    前言 枚举是 JDK 1.5 引入的类型,它使得我们在需要群组并使用枚举类型集时,可以很方便地处理。 基本使用 用...

  • SpringBoot和mybatis项目中使用枚举

    枚举基类 枚举定义 mybatis类型处理器 mybatis.xml中配置 mybatis mapper文件中re...

  • mybatis plus 枚举类型处理

    来源:CSDN 作者:linzhiji[https://linzhji.blog.csdn.net/]链接:htt...

  • 枚举

    枚举 枚举就是专门用来表示几种固定类型的取值 枚举的本质就是基本数据类型,整型 枚举类型定义格式 定义枚举类型变量...

  • TS学习笔记(6)-枚举类型

    枚举类型 ========= 知识点 枚举类型的定义方法 枚举类型的使用方法 代码

网友评论

    本文标题:JPA关于枚举类型的处理

    本文链接:https://www.haomeiwen.com/subject/unfelttx.html