Hibernate默认值

时间:2013-07-26 13:05:59

标签: java hibernate jpa

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

对于inst。假设String的默认值是“”。我希望Hibernate能够:

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

    当然,我可以写出数以千计的Getter和Setter,但它可以自动完成吗?

2 个答案:

答案 0 :(得分:6)

  

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

     

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

来源:

How to set default value in Hibernate

当然,而不是使用:

columnDefinition = “int default 100"

尝试类似:

columnDefinition = “TEXT default `default_text`"

我不确定这是否在语法上是正确的,但请检查这些:

Text Field using Hibernate Annotation

Set default values using hibernate annotations in MYSQL

答案 1 :(得分:0)

你可以使用字段getter实现这样的东西,它很简单并且可以达到目的。