最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用JPA插入枚舉類型字段

 更新時間:2022年06月10日 09:47:13   作者:-小末  
這篇文章主要介紹了使用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開始。這種方式并不常用,不清楚同學修改了枚舉類容易導致業(yè)務異常。

而且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的數(shù)字1或者 “boy” 或者“Boy”存入表中,JPA默認是不支持的,需要自定義一個類實現(xiàn)特定接口: implements AttributeConverter<X,Y>。

以代碼為例,詳看注釋,假如我想將BOY的1存入表中:

public class GenderConverter implements AttributeConverter<Gender, Integer>{
? ? /**
? ? ?* convertToDatabaseColumn方法是轉(zhuǎn)換數(shù)據(jù)到表中
? ? ?* 這里是將Gender 枚舉的value存入表中
? ? ?*/
?? ?@Override
?? ?public Integer convertToDatabaseColumn(Gender attribute) {
?? ??? ?if(attribute == null){
?? ??? ??? ?throw new RuntimeException("Unknown Gender text : " + attribute);
?? ??? ?}
?? ??? ?return attribute.getValue();
?? ?}
?
? ? /**
? ? ?* convertToEntityAttribute方法是轉(zhuǎn)換表中的值轉(zhuǎn)換回數(shù)據(jù)
? ? ?* 這里是將表中的枚舉的value值轉(zhuǎn)換成gender枚舉
? ? ?*/
?? ?@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 指向自定義轉(zhuǎn)換類GenderConverter
? ? * 此時JPA會根據(jù)自定義轉(zhuǎn)換規(guī)則對Gender枚舉類進行存取
? ? */
? ? @Convert(converter = GenderConverter.class)
? ? private Gender gender;
? ? //...省略
}

JPA枚舉類型處理

/**
?* 枚舉類型
?*
?*/
public enum Sex {
? ? MALE,
? ? FEMALE
}
/**
* @Enumerated(EnumType.STRING) : 存放字符串數(shù)據(jù)
* @Enumerated(EnumType.ORDINAL) : 存放索引值
*/
@Enumerated(EnumType.STRING)
public Sex getSex() {
? ? return sex;
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 詳解Java編程中static關鍵字和final關鍵字的使用

    詳解Java編程中static關鍵字和final關鍵字的使用

    這篇文章主要介紹了詳解Java編程中static關鍵字和final關鍵字的使用,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • java文件上傳Demo(必看篇)

    java文件上傳Demo(必看篇)

    下面小編就為大家?guī)硪黄猨ava文件上傳Demo(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • MyBatis中的循環(huán)插入insert foreach問題

    MyBatis中的循環(huán)插入insert foreach問題

    這篇文章主要介紹了MyBatis中的循環(huán)插入insert foreach問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • java實現(xiàn)圖的鄰接表存儲結構的兩種方式及實例應用詳解

    java實現(xiàn)圖的鄰接表存儲結構的兩種方式及實例應用詳解

    這篇文章主要介紹了java實現(xiàn)圖的鄰接表存儲結構的兩種方式及實例應用詳解,鄰接表構建圖是必須需要一個Graph對象,也就是圖對象!該對象包含屬性有:頂點數(shù)、邊數(shù)以及圖的頂點集合,需要的朋友可以參考下
    2019-06-06
  • Java構造函數(shù)通透理解篇

    Java構造函數(shù)通透理解篇

    這篇文章主要介紹了Java構造函數(shù),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • JDK8新特性-java.util.function-Function接口使用

    JDK8新特性-java.util.function-Function接口使用

    這篇文章主要介紹了JDK8新特性-java.util.function-Function接口使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java實現(xiàn)數(shù)字轉(zhuǎn)成英文的方法

    Java實現(xiàn)數(shù)字轉(zhuǎn)成英文的方法

    這篇文章主要介紹了Java實現(xiàn)數(shù)字轉(zhuǎn)成英文的方法,涉及java數(shù)組與字符串的相關操作技巧,需要的朋友可以參考下
    2015-05-05
  • IDEA創(chuàng)建Servlet程序的兩種實現(xiàn)方法

    IDEA創(chuàng)建Servlet程序的兩種實現(xiàn)方法

    Servlet是JavaWeb應用程序中不可或缺的組件之一,本文主要介紹了IDEA創(chuàng)建Servlet程序的兩種實現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Java中回調(diào)函數(shù)?(callback)?及其實際應用場景

    Java中回調(diào)函數(shù)?(callback)?及其實際應用場景

    在Java中回調(diào)函數(shù)(Callback)是一種常見的設計模式,用于實現(xiàn)異步操作或事件處理,這篇文章主要給大家介紹了關于Java中回調(diào)函數(shù)?(callback)?及其實際應用場景的相關資料,需要的朋友可以參考下
    2024-02-02
  • SpringMVC MVC架構與Servlet使用詳解

    SpringMVC MVC架構與Servlet使用詳解

    MVC設計模式一般指 MVC 框架,M(Model)指數(shù)據(jù)模型層,V(View)指視圖層,C(Controller)指控制層。使用 MVC 的目的是將 M 和 V 的實現(xiàn)代碼分離,使同一個程序可以有不同的表現(xiàn)形式。其中,View 的定義比較清晰,就是用戶界面
    2022-10-10

最新評論

通辽市| 原阳县| 康平县| 邯郸市| 阿拉善右旗| 平舆县| 凤城市| 汉寿县| 阿鲁科尔沁旗| 永善县| 桂平市| 大同市| 柯坪县| 宁武县| 安远县| 团风县| 平潭县| 邹平县| 天台县| 龙井市| 奉节县| 那坡县| 蒲江县| 固阳县| 玉山县| 额尔古纳市| 洮南市| 平凉市| 旬阳县| 南郑县| 仁怀市| 佛山市| 梁山县| 绥棱县| 小金县| 静乐县| 固始县| 青州市| 霍城县| 乌恰县| 左云县|