5

hibernate 有没有办法为每个字段定义默认值,并且为了数据库大小写 null 而不是这些默认值?

对于 inst。假设 String 的默认值为“”。我希望休眠:

  1. 为每个在数据库中具有 NULL 的字段返回“”。
  2. 当我尝试写入“”时,将 NULL 写入数据库

当然,我可以编写数千个 Getter 和 Setter,但可以自动完成吗?

4

2 回答 2

6

如果您想要一个真正的数据库默认值,请使用 columnDefinition - @Column(name = “myColumn”, nullable = false, columnDefinition = “int default 100”)。请注意,columnDefinition 中的字符串取决于数据库。此外,如果您选择此选项, 你必须使用动态插入, 所以 Hibernate 不会在插入时包含具有空值的列。否则谈论默认是无关紧要的。

但是,如果您不想要数据库默认值,而只是 Java 代码中的默认值,只需像这样初始化您的变量 - private Integer myColumn = 100;

资源:

如何在 Hibernate 中设置默认值

当然,而不是使用:

columnDefinition = “int default 100"

尝试类似:

columnDefinition = “TEXT default `default_text`"

我不确定这在语法上是否正确,但请查看以下内容:

使用 Hibernate Annotation 的文本字段

在MYSQL中使用hibernate注解设置默认值

于 2013-07-26T13:09:16.410 回答
0

You may implement such thing using field getters, Its simple and will serve the purpose.

于 2013-07-28T05:40:40.747 回答