激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語言 - Java教程 - 解決springboot jpa @Column columnDefinition等屬性失效問題

解決springboot jpa @Column columnDefinition等屬性失效問題

2022-02-27 15:12lu的博客 Java教程

這篇文章主要介紹了解決springboot jpa @Column columnDefinition等屬性失效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

jpa @Column columnDefinition屬性失效

刪除一條屬性,默認(rèn)false

?
1
#spring.jpa.properties.hibernate.globally_quoted_identifiers=true

原因

開啟后, 創(chuàng)建sql語句執(zhí)行時(shí)會(huì)添加'`', 會(huì)造成columnDefinition 屬性失效, author: dreamlu

例如

1.屬性設(shè)置為true

?
1
2
alter table `xxx` add column `xxx` `varchar(50) default ''`
// sql 語法錯(cuò)誤

2.屬性為false

?
1
2
alter table xxx add column xx varchar(50) default ''
// 執(zhí)行成功

可以看出: 有舍有得,第二種要求字段/表等命名不能和mysql或其他數(shù)據(jù)庫中關(guān)鍵字重名

jpa column注解

知識(shí)點(diǎn)

@Column注解一共有10個(gè)屬性,這10個(gè)屬性均為可選屬性,各屬性含義分別如下:

  • name:name屬性定義了被標(biāo)注字段在數(shù)據(jù)庫表中所對(duì)應(yīng)字段的名稱;
  • unique:unique屬性表示該字段是否為唯一標(biāo)識(shí),默認(rèn)為false。如果表中有一個(gè)字段需要唯一標(biāo)識(shí),則既可以使用該標(biāo)記,也可以使用@Table標(biāo)記中的@UniqueConstraint。
  • nullable :nullable屬性表示該字段是否可以為null值,默認(rèn)為true。
  • insertable :insertable屬性表示在使用“INSERT”腳本插入數(shù)據(jù)時(shí),是否需要插入該字段的值。
  • updatable:updatable屬性表示在使用“UPDATE”腳本插入數(shù)據(jù)時(shí),是否需要更新該字段的值。insertable和updatable屬性一般多用于只讀的屬性,例如主鍵和外鍵等。這些字段的值通常是自動(dòng)生成的。
  • columnDefinition :columnDefinition屬性表示創(chuàng)建表時(shí),該字段創(chuàng)建的SQL語句,一般用于通過Entity生成表定義時(shí)使用。(也就是說,如果DB中表已經(jīng)建好,該屬性沒有必要使用。)
  • table :table屬性定義了包含當(dāng)前字段的表名。
  • length :length屬性表示字段的長度,當(dāng)字段的類型為varchar時(shí),該屬性才有效,默認(rèn)為255個(gè)字符。
  • precisionscale :precision屬性和scale屬性表示精度,當(dāng)字段類型為double時(shí),precision表示數(shù)值的總長度,scale表示小數(shù)點(diǎn)所占的位數(shù)。

precision和scale疑點(diǎn)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@Table(name = "CUSTOMERS")
@Entity
public class Customer {
    @Column(name = "ID")
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Id
    private Integer id;
    @Column(name = "Name")
    private String name;
 
    @Column(name = "Email", nullable = true, length = 128)
    private String email;
 
    @Column(name = "Age")
    private int age;
 
    @Column(name = "Remark", columnDefinition = "text")
    private String remark;
 
    @Column(name = "Salary1", columnDefinition = "decimal(5,2)")
    private double salary1;
 
    @Column(name = "Salary2", precision = 5, scale = 2)
    private double salary2;
 
    @Column(name = "Salary3", columnDefinition = "decimal(5,2)")
    private BigDecimal salary3;
 
    @Column(name = "Salary4", precision = 5, scale = 2)
    private BigDecimal salary4;
    ......
}

數(shù)據(jù)庫DDL:

?
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE `customers` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Age` int(11) DEFAULT NULL,
  `Email` varchar(128) DEFAULT NULL,
  `Name` varchar(255) DEFAULT NULL,
  `Remark` text,
  `Salary1` decimal(5,2) DEFAULT NULL,
  `Salary2` double DEFAULT NULL,
  `Salary3` decimal(5,2) DEFAULT NULL,
  `Salary4` decimal(5,2) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

小結(jié)一下

1.double類型若在columnDefinition屬性中指定數(shù)字類型為decimal并指定精度,則最終以columnDefinition為準(zhǔn) (oracle數(shù)據(jù)庫中除外,其指定為float類型,因?yàn)閛racle數(shù)據(jù)庫沒有double類型,若針對(duì)oracle數(shù)據(jù)庫進(jìn)行精確,則改為

?
1
2
@Column(name = "Salary1", columnDefinition = "decimal(5,2)"//或columnDefinition = "number(5,2)"
    private Float salary1;

2.double類型將在數(shù)據(jù)庫中映射為double類型,precision和scale屬性無效

3.BigDecimal類型在數(shù)據(jù)庫中映射為decimal類型,precision和scale屬性有效

4.precision和scale屬性只在BigDecimal類型中有效

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/qq_35244529/article/details/87983785

延伸 · 閱讀

精彩推薦
1223
主站蜘蛛池模板: 日韩激情一区 | 法国性经典xxxhd | 性欧美暴力猛交69hd | 毛片在线免费视频 | 亚洲免费看片网站 | 国产午夜精品视频免费不卡69堂 | 日日操操 | 色吧综合网 | 性少妇videosexfreexx | 国产精品成年片在线观看, 激情小说另类 | 看毛片免费 | 精品午夜影院 | 男人天堂免费 | 青青青在线免费 | 国产一区二区三区四区精 | 国产精品岛国久久久久久 | 国产一区二区亚洲 | av成人免费看 | 久久久久久久久亚洲精品 | 国产成人综合在线观看 | 久久综合色区 | 国产男女爽爽爽爽爽免费视频 | 国产欧美一区二区三区免费看 | 一级成人欧美一区在线观看 | 模特三级在线观看 | 久草干| 免费国产在线精品 | 免费福利在线视频 | 人人玩人人爽 | 依人在线视频 | 中文字幕在线观看免费视频 | 黄色片在线播放 | 亚洲一区动漫 | 亚洲欧美日韩久久精品第一区 | 亚洲影院在线播放 | 成人黄色短视频在线观看 | 亚洲精品久久久久久久久久久 | 黄色毛片视频在线观看 | 成人区一区二区三区 | 91精品久久久久久久 | 日本在线播放一区二区三区 |