我知道在SO和网络上有很多这样的问题,但是所有的答案都建议使用columnDefinition
,这是特定于数据库的,因此不适用于我,因为我正在工作的系统需要在不同的数据库上运行。
我发现了这个hibernate issue,有人请求了这个注解功能。这个问题已经关闭,说another issue将覆盖这个功能。第二个问题显然添加了注解@Generated
和其他一些,但我找不到任何关于如何使用这些新注解定义默认列值的文档。
所以我的问题是:有谁知道如何用注解(而不是使用columnDefinition
)定义默认列值吗?
**编辑:**进一步澄清我的问题:当我添加一个新的非空列时,我需要Hibernate来更新现有的模式(将新列添加到相应的表中)。但由于该列为非空值,因此数据库无法在不指定默认值的情况下创建该列(如果表中已经有一些行)。所以我需要指示Hibernate发出以下的ALTER TABLE my_table ADD COLUMN new_column VARCHAR(3) DEFAULT 'def'
语句,但它必须独立于所使用的数据库。
2条答案
按热度按时间polkgigr1#
我不认为你需要任何文档,java文档是自我解释的。如果我理解正确的话,你需要一种方法来设置字段的默认值。如果是的,请看下面的代码片段。
字符串
mctunoxg2#
下面的代码是为我工作。
字符串