java - jpa中@ColumnDefault的值字段是什么?

标签 java hibernate jpa spring-data-jpa entity

我不是本地人。

我需要在jpa中使用默认值。我引用了this然后我使用了@ColumnDefault。 它工作得很好。但我想知道@ColumnDefault 值字段的作用。 @ColumnDefault 值的注释

The DEFAULT definition to apply to the DDL.

但我不知道DEFAULT定义是什么意思? 即使我使用@ColumnDefault("5000"),它也不会应用5000,只会应用DDL的默认值1000。

@ColumnDefault 的 value 字段的作用是什么?

谢谢。

最佳答案

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 让 hibernate 自动创建/更新数据库架构时才有用。如果您不使用这种自动模式生成功能,则不会有任何效果。

关于java - jpa中@ColumnDefault的值字段是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70737219/

相关文章:

java - 解释Java中的匿名类

java - Hibernate session.load 不填充对象的 arraylist 属性

java - JPA 与同一实体的两个单向@OneToMany 关系导致重复条目

java - 将 "hashcode like"存储在数据库中作为 boolean 类字段的描述,以提高性能并使命名查询简短

java - 设计可扩展的基于 Web 的应用程序的关键因素

java - 需要指导来选择正确的方式来捕获相机输入

java - 如何使用 Set.toArray() 对字符串进行排序?

hibernate - 如何在Grails中更改 map 的映射

java - 如何确保hibernate提交了事务?

spring-boot - spring boot 2 和 Redshift 连接。