一般在網(wǎng)上都會(huì)說(shuō)通過(guò)下面這種方式來(lái)生成默認(rèn)值
@Column(name="abc" ,nullable=false,columnDefinition="INT default 0")
private Integer abc;
但這種方式是編寫原生的生成表結(jié)構(gòu)的sql,除了語(yǔ)法要保證正確外晌姚,而且類型需要數(shù)據(jù)庫(kù)支持才行粤剧,并不能自動(dòng)匹配類型。
其實(shí)hibernate提供了專門設(shè)置默認(rèn)值的注解:
@ColumnDefault("0")
private Integer abc;
官方文檔demo:
使用Hibernate挥唠,您可以使用@ColumnDefault
注釋為給定的數(shù)據(jù)庫(kù)列指定默認(rèn)值抵恋。
示例. @ColumnDefault
映射示例
@Entity(name = "Person")
@DynamicInsert
public static class Person {
@Id
private Long id;
@ColumnDefault("'N/A'")
private String name;
@ColumnDefault("-1")
private Long clientId;
//Getter and setters omitted for brevity
}
CREATE TABLE Person (
id BIGINT NOT NULL,
clientId BIGINT DEFAULT -1,
name VARCHAR(255) DEFAULT 'N/A',
PRIMARY KEY (id)
)