亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JPA如何設置默認字段及其長度

發布時間:2021-12-13 08:49:30 來源:億速云 閱讀:264 作者:柒染 欄目:開發技術

本篇文章為大家展示了JPA如何設置默認字段及其長度,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

使用jpa去生成對應的值的長度和默認值是如何設置的呢

@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Column {
    String name() default "";

    boolean unique() default false;

    boolean nullable() default true;

    boolean insertable() default true;

    boolean updatable() default true;

    String columnDefinition() default "";

    String table() default "";

    int length() default 255;

    int precision() default 0;

    int scale() default 0;
}
  • name 屬性用來設置字段的名字

  • unique用于設置這個字段是否是是唯一的

  • insertable和updatable、table都是和表更新相關的操作,

  • length 指定長度,默認是255

  • precision 數據長度

  • scale小數的長度

  • columnDefinition 指定這一列的信息

String

string是最常見的字段,

@Column(name = “name”)
private String name;

SQL中 name varchar(255)

生成的字段長度為255,即如果不設置長度的話默認的長度就是255個。

@Column(name = “name”,length = 50)
private String name;
name varchar(50)

JPA如何設置默認字段及其長度

@Column(name = “name”,columnDefinition=“varchar(11) COMMENT ‘用戶姓名'”)
private String name;
name varchar(11) COMMENT ‘用戶姓名'

JPA如何設置默認字段及其長度

這里不僅指定了長度,還給列了一個注釋,便于查看

@Column(name = “name”,columnDefinition=“default ‘12345'”)
private String name;

如果我們制定默認值,這樣SQL語句就會報錯

create table user (id bigint not null, age integer, birth datetime(6), name default ‘12345', sex bit, primary key (id)) engine=InnoDB

如果我們制定長度呢

@Column(name = “name”,columnDefinition=“default ‘12345'”,length = 25)
private String name;

運行的DDL語句依然無法創建出表

create table user (id bigint not null, age integer, birth datetime(6), name default ‘12345', sex bit, primary key (id)) engine=InnoDB

如何給String字段指定默認值呢

所以如果指定columnDefinition這個屬性會覆蓋原來的列注解的長度,而且在其注解的中必須制定列的類型

   /**
     * (Optional) The SQL fragment that is used when 
     * generating the DDL for the column.
     * <p> Defaults to the generated SQL to create a
     * column of the inferred type.
     */
    String columnDefinition() default "";
/**
*(可選)在以下情況下使用的SQL片段:
*正在為列生成DDL。
*默認使用生成的SQL來創建推斷類型的列。
*/
@Column(name = “name”,columnDefinition=" varchar(11) default ‘12345'",length = 25)
private String name;
create table user (id bigint not null, age integer, birth datetime(6), name varchar(11) default ‘12345', sex bit, primary key (id)) engine=InnoDB

columnDefinition 會將其中的值作為列名之后,如果在這里設置默認值,必須保證直接加在列名之后執行不會出錯。

JPA如何設置默認字段及其長度

定義 Integer 和 Long 有區別嗎

JPA如何設置默認字段及其長度

JPA如何設置默認字段及其長度

Long的默認長度為20,Integer的默認長度為11

定義Integer和int有區別嗎

JPA如何設置默認字段及其長度

區別是int如果你不給他設置就會默認為0

boolean和Boolean也是一樣的。

boolean類型

默認長度為1

@Column(name = “sex”)
private Boolean sex;

JPA如何設置默認字段及其長度

@Column(name = “sex”)
private boolean sex;

JPA如何設置默認字段及其長度

二者沒有什么區別,如果我們將boolean設置默認值并且設置長度會咋樣呢?

@Column(name = “sex”,length = 50)
private boolean sex;

生成的DDL語句中并沒有長度的屬性。所以在boolean類型中設置長度屬性是沒有作用的

create table user (id bigint not null, age integer, birth datetime(6), name varchar(255), sex bit, primary key (id)) engine=InnoDB

指定boolean類型的默認值呢

@Column(name = “sex”,columnDefinition = “bit(1) default 1”)
private boolean sex;

JPA如何設置默認字段及其長度

有注意,如果指定默認值為1,即是true,屬性如果不指定,boolean的默認值就是false,所以會將false設置到對應的數據中,如果指定Boolean呢

如果指定Boolean的話,沒有設置默認就是null,就會將空更新到數據庫中,最好用的方法還是在java類中設置默認值。

日期

默認的日期格式不具有可讀性

@Column(name = "birth")
private Date birth;

JPA如何設置默認字段及其長度

使用@Temporal來制定格式

	@Temporal(TemporalType.DATE)
	@Column(name = "birth")
	private Date birth;

JPA如何設置默認字段及其長度

@Temporal有三個值

  • DATE 只有日期

  • TIME 只有時間 時分秒

  • TIMESTAMP 日期和時間都有

浮點數格式的設置

@Column(name = “age”,scale = 2)
private int age;

age integer,屬性為scale = 2沒有作用

@Column(name = “age”,scale = 2)
private float age;

JPA如何設置默認字段及其長度

@Column(name = “age”,precision = 5,scale = 2)
private float age;

還是沒有用,指定數據格式為double,依然沒有用

@Column(name = “age”,columnDefinition = “decimal(5,2)”)
private double age;

JPA如何設置默認字段及其長度

大文本

	/**
	 * 備注
	 */
   	@Basic(fetch = FetchType.LAZY)
	@Type(type = "text")
	@Lob
	@Column(name = "remark")
	private String remark;

@Lob 指定該文本為長文本

@Basic(fetch = FetchType.LAZY) 長文本緩加載,便于數據的讀取。 

上述內容就是JPA如何設置默認字段及其長度,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

jpa
AI

阜新| 灌云县| 陈巴尔虎旗| 浪卡子县| 拜城县| 于田县| 宜黄县| 平果县| 扬州市| 玉门市| 孟津县| 富民县| 怀化市| 宝丰县| 雅安市| 霍山县| 隆子县| 隆安县| 石阡县| 云和县| 嘉义市| 桦甸市| 光山县| 仲巴县| 盐津县| 平利县| 兴仁县| 通渭县| 阳东县| 乌拉特中旗| 潢川县| 苍南县| 六安市| 隆子县| 雷山县| 长丰县| 历史| 京山县| 高青县| 玛纳斯县| 阿克陶县|