如何将默认值设置为JPA实体和liquibase

时间:2016-12-01 14:19:19

标签: jpa liquibase

我有JPA实体,我在其中添加了一个布尔属性:

@Column(name = "attestation_reception_du_ok") private boolean attestationReceptionDuOk;

然后我运行 liquibase:diff 来生成xml文件以更新我的数据库。

然后我意识到我需要为我的属性添加一个默认值。 所以我更新了xml liquibase生成的文件,如下所示:

<addColumn tableName="collaborateur">
         <column name="attestation_reception_du_ok" type="bit"
                 defaultValueBoolean="false"/>
</addColumn>

我运行了liquibase,它使用默认值更新了mysql表。

然后我再次运行liquibase并添加了这个更改:

<dropDefaultValue columnDataType="boolean default 0"
                        columnName="attestation_reception_du_ok"
                        tableName="collaborateur"/>

所以我决定更新我的JPA实体,以告诉liquibase保留默认值选项:

@Column(name = "attestation_reception_du_ok" , columnDefinition = "bit  default 0")
    private boolean attestationReceptionDuOk;

但即使在JPA实体中添加了默认值之后,liquibase仍然告诉我要删除默认值。

如何告诉liquibase保留默认值?

感谢。

1 个答案:

答案 0 :(得分:0)

这是与版本3.6修复的liquibase相关的问题。根据{{​​3}}问题跟踪。只需更新您的liquibase版本即可使其正常运行。