【问题标题】:Hibernate. Add default column value after column creation休眠。创建列后添加默认列值
【发布时间】:2016-08-17 18:10:19
【问题描述】:

有没有办法在使用 Hibernate 创建列后为现有条目设置默认值?

发现可以手动操作:

ALTER TABLE Employee 
ADD DEFAULT('SANDNES') FOR CityBorn

但是有没有办法使用休眠来做某事?

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    这就是休眠的方式。

    @Column(name="CityBorn", columnDefinition="default 'SANDNESS'")
    private String cityBorn;
    

    【讨论】:

    • 这个想法是为表的现有条目设置默认值。
    【解决方案2】:

    你可以使用注解

    @ColumnDefault("SANDNES")
    

    喜欢指定here

    或xml片段

      <column name="CityBorn" default="SANDNES" />
    

    喜欢指定here

    如果你想让 Hibernate 重新创建你的数据库,你必须指定 hibernate.hbm2ddl.auto=update,但这不是推荐的生产方式(例如参见 this question) 通常人们会使用第三方工具进行模式迁移(例如 liquibase 或 flyway)。 hbm2ddl(Hibernate 使用)的可能性是有限的。

    【讨论】:

    • 感谢您的回复。试过这种方式。仅适用于新条目。这个想法是将列的默认值设置为数据库中的现有值。
    • 你的意思是更新数据库中的所有记录,或者如果该列为空,则将实体的(java)字段设置为默认值?
    • 刚刚意识到我希望通过“更新现有条目”实现什么:) 是的,这个想法是更新所有记录(或者这可以从实体声明中完成?)跨度>
    猜你喜欢
    • 2011-03-25
    • 2013-07-26
    • 2018-11-12
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 2015-03-27
    相关资源
    最近更新 更多