【问题标题】:What is value field of @ColumnDefault in jpa?jpa中@ColumnDefault的值字段是什么?
【发布时间】:2022-01-17 06:17:10
【问题描述】:
我不是本地人。
我需要在 jpa 中使用默认值。我引用了this,然后我使用了@ColumnDefault。
它很好用。但我想知道@ColumnDefault 的值字段的作用。 @ColumnDefault 值的注释
应用于 DDL 的 DEFAULT 定义。
但我不知道DEFAULT定义是什么意思?
即使我使用@ColumnDefault("5000"),也没有应用5000,只应用了DDL的默认值1000。
@ColumnDefault 的 value 字段的作用是什么?
谢谢。
【问题讨论】:
标签:
java
hibernate
jpa
spring-data-jpa
entity
【解决方案1】:
DEFAULT定义只表示SQL默认值,可以通过以下DDL定义:
CREATE TABLE Person (
name VARCHAR(255) DEFAULT 'N/A'
)
值 'N/A' 是列名的默认定义,相当于以下映射:
@Entity(name = "Person")
public class Person {
@Column("name")
@ColumnDefault("'N/A'")
private String name;
}
@ColumnDefault 仅在您使用hibernate.hbm2ddl.auto 让休眠自动创建/更新您的数据库模式时有用。如果你不使用这种自动模式生成功能,它不会有任何效果。