日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Springboot JPA 枚舉Enum類型存入到數據庫的操作

瀏覽:19日期:2023-03-26 15:33:32

1、使用JPA 的@Enumerated 注解 ,可以直接將Enum映射到數據庫中。

但是value的值只有兩種方式選擇,一種是使用枚舉的序號映射,一種是枚舉的名稱來映射。

public enum EnumType { /** Persist enumerated type property or field as an integer. */ ORDINAL, /** Persist enumerated type property or field as a string. */ STRING}

如果想存入枚舉中的自定義的值,則需要實現AttributeConverter接口

2、實現AttributeConverter接口方式

/** * @param <DB> : 保存到數據庫的數據類型 * @author peter * date: 2019-05-15 16:57 **/public interface PersistEnum2DB<DB> { DB getData();}

import javax.persistence.AttributeConverter;/** * @param <ATTR> 實體類中枚舉的類型,需實現{@link PersistEnum2DB} 接口 * @param <DB> 保存到數據庫的數據類型 * @author peter * date: 2019-05-15 16:59 */public abstract class AbstractEnumConverter<ATTR extends Enum<ATTR> & PersistEnum2DB<DB>, DB> implements AttributeConverter<ATTR, DB> { private final Class<ATTR> clazz; public AbstractEnumConverter(Class<ATTR> clazz) { this.clazz = clazz; } @Override public DB convertToDatabaseColumn(ATTR attribute) { return attribute != null ? attribute.getData() : null; } @Override public ATTR convertToEntityAttribute(DB dbData) { if (dbData == null) return null; ATTR[] enums = clazz.getEnumConstants(); for (ATTR e : enums) { if (e.getData().equals(dbData)) { return e; } } throw new UnsupportedOperationException('枚舉轉化異常。枚舉【' + clazz.getSimpleName() + '】,數據庫庫中的值為:【' + dbData + '】'); }}使用方式

import com.tourcoo.parking.enums.convert2db.AbstractEnumConverter;import com.tourcoo.parking.enums.convert2db.PersistEnum2DB;/** * @author peter * create: 2019-05-15 14:33 **/public enum PayStatus implements PersistEnum2DB<Integer> { NONPAY(0, '未支付'), PAID(1, '已支付'); private int code; private String msg; PayStatus(int code, String msg) { this.code = code; this.msg = msg; } public int getCode() { return code; } public String getMsg() { return msg; } @Override public Integer getData() { return code; } public static class Converter extends AbstractEnumConverter<PayStatus, Integer> { public Converter() { super(PayStatus.class); } }}

//支付狀態 @Convert(converter = PayStatus.Converter.class) private PayStatus payStatus;

補充: SpringBoot | Jpa 將Java枚舉映射為基本值類型

解決方法之一:

使用實體屬性類型轉換器AttributeConverter

場景假設:

在代碼中使用枚舉類來映射用戶性別(如下代碼所示),在數據庫中使用字符映射性別(M ,F),Hibernate提供了AttributeConverter解決上述場景的轉換問題

public enum Gender { MALE( ’M’ ), FEMALE( ’F’ ); private final char code; Gender(char code) { this.code = code; } public static Gender fromCode(char code) { if ( code == ’M’ || code == ’m’ ) { return MALE; } if ( code == ’F’ || code == ’f’ ) { return FEMALE; } throw new UnsupportedOperationException( 'The code ' + code + ' is not supported!' ); } public char getCode() { return code; }}

User實體類定義如下,重點在 @Convert(converter = GenderConverter.class)注釋

@Entity@Data@ToString@Table(name = 'user')public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; @Convert(converter = GenderConverter.class) private Gender gender;}

定義一個GenderConverter的類,需要實現AttributeConverter接口,實現convertToDatabaseColumn和convertToEntityAttribute,作用是分別封裝從實體類映射至數據庫字段數值的邏輯和從數據庫字段數值映射到代碼實體類中的枚舉類值。

public class GenderConverter implements AttributeConverter<Gender,Character> { @Override public Character convertToDatabaseColumn(Gender gender) { if ( gender == null ) { return null; } return gender.getCode(); } @Override public Gender convertToEntityAttribute(Character value) { if ( value == null ) { return null; } return Gender.fromCode( value ); }}測試

@SpringBootTest@Slf4jpublic class AttributeConverterTest { @Resource private UserRepository userRepository; @Test void should_user__when__give_user() { //given User user1 = new User(null,'Janny', Gender.FEMALE); User user2 = new User(null,'Tom', Gender.MALE); //when User actUser1 = userRepository.save(user1); User actUser2 = userRepository.save(user2); //then Assertions.assertNotNull(actUser1); Assertions.assertNotNull(actUser2); }}

Springboot JPA 枚舉Enum類型存入到數據庫的操作

例外Hibernate也提供其他的方法,如使用@Enumerated注解,詳情可閱讀這篇文檔

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品嫩模av在线| 免费欧美日韩| 久久一区二区三区喷水| 久草精品视频| 日本少妇一区二区| 欧美一区91| 国产亚洲一区二区三区不卡| 日本欧美韩国一区三区| 亚洲欧美一级| 日本成人在线不卡视频| 久久国产三级| 国产伦精品一区二区三区千人斩 | 日韩在线看片| 美女毛片一区二区三区四区最新中文字幕亚洲 | 麻豆精品久久久| 欧美激情一区| 日本久久精品| 欧美片第1页| 欧美99久久| 老鸭窝毛片一区二区三区| 在线日韩视频| 久久婷婷一区| 亚洲自啪免费| 日本午夜精品一区二区三区电影| 欧美日韩91| 精品一区二区三区的国产在线观看 | 五月婷婷六月综合| 久久不射中文字幕| 奇米狠狠一区二区三区| 久久这里只有| 亚洲爱爱视频| 中文精品在线| 青青草精品视频| 91成人精品在线| 久久久久伊人| 欧美日韩在线网站| 一区二区国产精品| 捆绑调教美女网站视频一区| 久久uomeier| 久久美女精品| 日韩国产成人精品| 日韩av专区| 国产精品老牛| 久久99偷拍| 性欧美69xoxoxoxo| 欧美一区成人| 久久久一本精品| 亚洲精品综合| 精品国产一区二区三区性色av| 日韩国产综合| 亚洲一级淫片| 国产在线一区不卡| 亚洲欧美日韩高清在线| 日韩av不卡在线观看| 激情国产在线| 亚洲精品四区| 风间由美中文字幕在线看视频国产欧美| 欧美69视频| 国产精品久久久久av蜜臀| 久久人人99| 国产九九精品| 黄色成人精品网站| 欧美国产日韩电影| 亚洲综合小说| 麻豆精品视频在线| 欧美天堂视频| 天堂精品久久久久| 国产欧美高清| 91精品国产调教在线观看| 丝袜美腿亚洲一区二区图片| 欧美在线黄色| 色婷婷久久久| 国产日韩欧美| 国产精品jk白丝蜜臀av小说| 午夜精品影视国产一区在线麻豆| 亚洲一区激情| 99xxxx成人网| 首页国产欧美久久| 欧美+日本+国产+在线a∨观看| 亚洲精品成人一区| 亚洲久久一区| 国产一区二区三区国产精品| 成人日韩在线观看| 日韩精品一二三区| 精品成av人一区二区三区| 天堂日韩电影| 日本欧美在线看| 精品欧美视频| 美女久久网站| 国产精品欧美日韩一区| 伊人久久成人| 久久只有精品| 亚洲狼人精品一区二区三区| 久久婷婷丁香| 精品国产午夜| 国产精品白丝久久av网站| 在线亚洲免费| 国产一区二区三区四区大秀| 日本成人在线一区| 影视先锋久久| 国产精品久久观看| 性色av一区二区怡红| 日韩在线观看一区二区三区| 久久久久久美女精品| 欧美一区二区三区久久| 欧美日韩亚洲一区三区| 久久久久午夜电影| 加勒比视频一区| 欧美一区免费| 性欧美长视频| 日韩综合在线| 丝袜美腿亚洲色图| 久久精品天堂| 精品国内亚洲2022精品成人| 婷婷精品在线| 久久精选视频| 久久精品亚洲人成影院| 国产精品视频首页| 亚洲狼人精品一区二区三区| 视频一区二区欧美| 欧美a级一区| 色欧美自拍视频| 国产麻豆精品久久| 国产精品香蕉| 一区二区高清| 国产农村妇女精品一二区| 欧洲av一区二区| 开心激情综合| 亚洲精品极品少妇16p| 成人羞羞在线观看网站| 欧美激情麻豆| 欧美日韩99| 精品久久美女| 国产一区 二区| 国产精品原创| 91精品综合| 久久精品国产大片免费观看| 欧美成人亚洲| 蜜桃视频一区二区三区| 黑丝一区二区| 日韩午夜黄色| 蜜臀国产一区| 五月天激情综合网| 欧美日韩视频免费看| 精品中文字幕一区二区三区四区| 欧美日韩中文字幕一区二区三区| 99久久亚洲精品| 久久xxxx精品视频| 精品视频一区二区三区四区五区| 午夜宅男久久久| 国产一区二区中文| 伊人成人网在线看| 视频一区视频二区在线观看| 亚洲欧美网站在线观看| 一区二区三区国产在线| 国产精品欧美日韩一区| 日韩久久精品| 午夜亚洲福利| 成人午夜毛片| 亚洲国内欧美| 中文字幕亚洲精品乱码| 国产伦精品一区二区三区在线播放| 精品国产亚洲一区二区在线观看| 欧美天堂视频| 中文无码日韩欧| 国产极品模特精品一二| 久久久久国产精品一区三寸| 国户精品久久久久久久久久久不卡| 欧美日韩国产综合网| 超级白嫩亚洲国产第一| 国产午夜久久av| 麻豆一区在线| 性欧美长视频| 亚洲不卡av不卡一区二区| 亚洲精品进入| 精品欧美视频| 久久亚洲欧美| 综合亚洲自拍| 日韩欧美久久| 欧美日韩视频免费观看| 好吊日精品视频| 欧美日韩1区| 国产白浆在线免费观看| 在线亚洲观看| 91精品国产自产在线丝袜啪| 久久男人天堂| 日本不卡视频在线观看| 国产91在线播放精品| 日韩久久精品网| 久久久久久一区二区| 精品国产99| 日韩欧美精品一区| 午夜久久久久| 欧美午夜不卡| 青青草91久久久久久久久| 日韩国产精品久久久| 九九久久电影| 中文在线日韩| 欧美日韩 国产精品| 久久亚洲精品伦理|