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

JPA之映射mysql text類型的問題

 更新時間:2021年10月15日 09:11:38   作者:Moshow鄭鍇  
這篇文章主要介紹了JPA之映射mysql text類型的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

JPA之映射mysql text類型

問題背景

jpa如果直接映射mysql的text/longtext/tinytext類型到String字段會報錯。需要設(shè)置一下@Lob和@Column。

@Lob代表是長字段類型,默認的話,是longtext類型,所以需要下面這個屬性來指定對應(yīng)的類型。

columnDefinition="text"里面的類型可以隨意改,后面mysql可能會有新的類型,只要是對應(yīng)java的String類型,就可以在這里動態(tài)配置。

解決方案

@Data
@Entity
@Table(name="question")
public class Question {
    @Id
    @GeneratedValue
    public int questionId;
    //....省略其他字段
    @Lob
    @Column(columnDefinition="text")
    public String explainStr;
    public Date createTime;
}

JPA各種類型映射處理

1.日期格式類型字段的映射,利用@Temporal(TemporalType.Date)進行注解;例如:

private Date birthday;
@Temporal(TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}

2.枚舉類型的映射,利用@Enumerated,其參數(shù)EnumType表示指定存放在數(shù)據(jù)表中的形式,整型還是String;

首先創(chuàng)建一個枚舉:

public enum Gender
  {
Male,Female
}

在實體類中調(diào)用:

private Gender gender = Gender.Male;  // 為枚舉設(shè)置默認值
@Enumerated(EnumType.STRING)
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}

3.大文本數(shù)據(jù)類型的映射,例如:網(wǎng)絡(luò)日志,字符串類型的長度顯然不夠,利用@Lob注解,該注解用在字符串類型之上在數(shù)據(jù)庫生成LongText類型的數(shù)據(jù);例如:

private String diary;
@Lob
public String getDiary() {
return diary;
}
public void setDiary(String diary) {
this.diary = diary;
}

4.@Lob注解用在Byte[]數(shù)組類型,例如:保存一個文件可以用此類型,用在這個上面在數(shù)據(jù)庫中可以生成LongBolb數(shù)據(jù)類型;例如:

private Byte[] file;
@Lob
public Byte[] getFile() {
return file;
}
public void setFile(Byte[] file) {
this.file = file;
}

5.如果在實體類中不需要該字段與數(shù)據(jù)庫中的表進行映射,但是默認的情況下是將實體類的全部字段映射成數(shù)據(jù)表的列,那該怎樣做呢?利用@Transient注解,例如:

private String other;
@Transient
public String getOther() {
return other;
}
public void setOther(String other) {
this.other = other;
}

6.如果一個實體類中包含一個大數(shù)據(jù)類型的字段,如Byte[]類型,當(dāng)我們查詢該實體類時不得不查詢出該數(shù)據(jù)類型的字段,如果我們在查詢時只用到一個其它字段的數(shù)據(jù),但是默認情況下是查詢?nèi)康?,那該怎樣避免查詢該大?shù)據(jù)類型的數(shù)據(jù)呢?利用@Basic注解進行標(biāo)注,將fetch屬性值設(shè)置為Lazy即可,這樣只有在我們調(diào)用該屬性的get方法時才會進行加載;

private Byte[] file;
@Lob @Basic(fetch=FetchType.LAZY)
public Byte[] getFile() {
return file;
}
public void setFile(Byte[] file) {
this.file = file;
}

7.@Column 該注解表示數(shù)據(jù)表的映射列,放在屬性的getter方法上:

  • .length:該屬性表示該映射列的長度;
  • .nullable:該屬性表示該列是否可為空,true表示可為空,false表示不可為空;
  • .name:該屬性表示為該列起別名,不讓實體類的屬性名與數(shù)據(jù)庫的列名相同;

8.@Table 該注解表示映射的表;放在該實體類之上:

  • .name:該屬性表示為表起別名,讓實體類與數(shù)據(jù)表名不相同;

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

相關(guān)文章

  • idea中l(wèi)ombok的用法

    idea中l(wèi)ombok的用法

    lombok是開源的代碼生成庫,是一款非常實用的小工具,在更改實體類時只需要修改屬性即可,減少了很多重復(fù)代碼的編寫工作,今天小編給大家介紹idea中l(wèi)ombok的用法,感興趣的朋友一起看看吧
    2021-12-12
  • Spring Boot 2 整合 QuartJob 實現(xiàn)定時器實時管理功能

    Spring Boot 2 整合 QuartJob 實現(xiàn)定時器實時管理功能

    Quartz是一個完全由java編寫的開源作業(yè)調(diào)度框架,形式簡易,功能強大。接下來通過本文給大家分享Spring Boot 2 整合 QuartJob 實現(xiàn)定時器實時管理功能,感興趣的朋友一起看看吧
    2019-11-11
  • Springboot中的Validation參數(shù)校驗詳解

    Springboot中的Validation參數(shù)校驗詳解

    這篇文章主要介紹了Springboot中的Validation參數(shù)校驗詳解,Springboot參數(shù)校驗是一種常用的驗證機制,在傳遞參數(shù)時進行校驗,以確保參數(shù)的有效性和正確性,該機制可以幫助開發(fā)者在代碼實現(xiàn)前就避免一些常見的錯誤,需要的朋友可以參考下
    2023-10-10
  • Java集合框架LinkedList詳解及實例

    Java集合框架LinkedList詳解及實例

    這篇文章主要介紹了Java集合框架LinkedList詳解及實例的相關(guān)資料,從定義,概述,用法進行介紹,需要的朋友可以參考下
    2017-04-04
  • java如何讀取超大文件

    java如何讀取超大文件

    這篇文章主要為大家詳細介紹了java如何讀取超大文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • java實現(xiàn)大文件導(dǎo)出的實現(xiàn)與優(yōu)化

    java實現(xiàn)大文件導(dǎo)出的實現(xiàn)與優(yōu)化

    這篇文章主要為大家詳細介紹了java實現(xiàn)大文件導(dǎo)出的實現(xiàn)與優(yōu)化的相關(guān)資料,文中的示例代碼講解詳細,對我們深入了解java有一定的幫助,感興趣的小伙伴可以了解下
    2023-11-11
  • JAVA實現(xiàn)網(wǎng)絡(luò)/本地圖片轉(zhuǎn)BASE64存儲代碼示例

    JAVA實現(xiàn)網(wǎng)絡(luò)/本地圖片轉(zhuǎn)BASE64存儲代碼示例

    這篇文章主要給大家介紹了關(guān)于JAVA實現(xiàn)網(wǎng)絡(luò)/本地圖片轉(zhuǎn)BASE64存儲的相關(guān)資料,Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數(shù)據(jù)的方法,需要的朋友可以參考下
    2023-07-07
  • java從字符串中提取數(shù)字的簡單實例

    java從字符串中提取數(shù)字的簡單實例

    下面小編就為大家?guī)硪黄猨ava從字符串中提取數(shù)字的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Spring Boot整合Web項目常用功能詳解

    Spring Boot整合Web項目常用功能詳解

    這篇文章主要介紹了Spring Boot整合Web項目常用功能詳解,在Web應(yīng)用開發(fā)過程中,可以通過Spring Boot的Starter來將這些常用功能進行整合與集中維護,以達到開箱即用的目的。,需要的朋友可以參考下
    2019-06-06
  • Java Web Filter 過濾器學(xué)習(xí)教程(推薦)

    Java Web Filter 過濾器學(xué)習(xí)教程(推薦)

    Filter也稱之為過濾器,它是Servlet技術(shù)中最激動人心的技術(shù).這篇文章主要介紹了Java Web Filter 過濾器學(xué)習(xí)教程的相關(guān)資料,需要的朋友可以參考下
    2016-05-05

最新評論

阳东县| 广东省| 巴南区| 虞城县| 安图县| 和林格尔县| 隆回县| 满洲里市| 大宁县| 芜湖市| 米脂县| 花垣县| 上蔡县| 酒泉市| 黄山市| 阿瓦提县| 宜城市| 丹凤县| 紫阳县| 永安市| 托里县| 平遥县| 板桥市| 呈贡县| 修文县| 新平| 韩城市| 新邵县| 志丹县| 阿拉善右旗| 富源县| 星座| 宁陵县| 新泰市| 阳泉市| 阿拉善左旗| 博罗县| 桐柏县| 印江| 神池县| 江西省|