【发布时间】:2013-07-26 18:25:33
【问题描述】:
有没有办法用 hibernate 为每个字段定义默认值,并且为了数据库大小写 null 而不是这些默认值?
对于实例。假设 String 的默认值为“”。我希望 Hibernate:
- 为每个在数据库中为 NULL 的字段返回 ""。
- 当我尝试写入“”时,将 NULL 写入数据库
当然,我可以编写成千上万个 Getter 和 Setter,但是可以自动完成吗?
【问题讨论】:
有没有办法用 hibernate 为每个字段定义默认值,并且为了数据库大小写 null 而不是这些默认值?
对于实例。假设 String 的默认值为“”。我希望 Hibernate:
当然,我可以编写成千上万个 Getter 和 Setter,但是可以自动完成吗?
【问题讨论】:
如果你想要一个真正的数据库默认值,使用 columnDefinition - @Column(name = "myColumn", nullable = false, columnDefinition = "int 默认 100")。注意 columnDefinition 中的字符串是数据库 依赖。此外,如果您选择此选项,则必须使用 动态插入,因此 Hibernate 不包含具有空值的列 在插入。否则谈论默认是无关紧要的。
但是如果你不想要数据库默认值,而只是一个默认值 Java 代码中的值,只需像这样初始化变量 - 私有整数 myColumn = 100;
来源:
How to set default value in Hibernate
当然,不要使用:
columnDefinition = “int default 100"
尝试类似:
columnDefinition = “TEXT default `default_text`"
我不确定这在语法上是否正确,但请查看以下内容:
【讨论】:
I would like Hibernate to write NULL to database whenever I try to write "".
您可以使用字段获取器来实现这样的事情,它很简单并且可以达到目的。
【讨论】: