如何在休眠字段中设置默认值?
如果要使用真实的数据库默认值,请使用columnDefinition
:
@Column(name = "myColumn", nullable = false, columnDefinition = "int default 100")
您可以使用@PrePersist
批注并在预持久阶段设置默认值。
仅为该字段设置默认值是什么?
使用休眠注释
如果要在数据库中执行此操作:
一种解决方案是让您的吸气剂检查您正在使用的任何值是否为空(或它的未初始化状态为空),并且如果它等于该值,则只需返回默认值即可:
我进行了搜索,发现许多列默认值的答案。如果要使用SQL表中定义的默认值,请在@Column注释中使用“ insertable = false”
使用@ColumnDefault()
注释。虽然这只是休眠。
与Oracle合作,我试图为枚举插入默认值
您可以使用java类的构造函数来设置默认值。例如:
使用表的任何列中的默认值。那么您必须将@DynamicInsert
定义为true,否则您只需定义@DynamicInsert
。因为休眠默认情况下为true。考虑给定的示例:
<property name="age" type="integer">
<column name="age" not-null="false" default="null" />
</property>
我正在使用Hibernate 5和Postgres,而这在我看来是有效的。
如果要设置数据库默认值,只需设置@Column( columnDefinition = "int default 1")
以上建议有效,但前提是在getter方法上使用了注释。如果在声明成员的地方使用了注释,则不会发生任何事情。