当前位置: 首页 > 知识库问答 >
问题:

Liquibase忽略@NotNull

上官高畅
2023-03-14

我在一些字段上有@NotNull注释。然而,当我尝试生成diffChangelog时,它会删除所有非空约束

示例类:

public class User {

    @NotNull
    private String email;
}

差异集:

<changeSet author="author (generated)" id="1437485184491-4">
    <dropNotNullConstraint columnDataType="varchar(255)" columnName="email" tableName="user"/>
</changeSet>

唯一的解决方案似乎是在每个字段上添加一个额外的注释@列(nullable=false)。我可以做任何事情,这样我就不必在每个字段上添加额外的注释。

共有2个答案

淳于博
2023-03-14

目前,当我设置Additional时,它对我有效:

@Column(nullable = false)

不知何故,@NotNull无法很好地使用org.liquibase.ext.liquibase-hibernate5

宋育
2023-03-14

如果还有人对此有问题,我最近发现它已经在liquibase-hibernate5-3.7中修复了

 类似资料:
  • 我在酗酒方面遇到了麻烦。出于某种原因(我没有更改任何现有的变更集或其他东西),它试图应用已经在base中的变更集。所以我得到了一些错误,比如“关系”表“已经存在”。 我找到了这个标签-

  • 您可能已经注意到,缺少了“生成为标识”,这使我相信不管出于什么原因,AutoIncrement=“true”被忽略了。 我使用Oracle 12.1.0.2和org.LiquiBase:LiquiBase-Core 3.8.2。OJDBC驱动程序版本为19.3.0.0。分级属性为: 我读过互联网,我知道我的Oracle版本与此列类型兼容,并且我不需要创建额外的Oracle序列。有什么线索会出什么问

  • 我正在使用liquibase运行一个changelog文件来部署几个数据库对象。如果在变更日志中找不到特定文件,则会出现文件未找到错误并停止执行。我想忽略未找到的文件,而不是引发错误。我查看了文档,但没有找到任何适用于我的用例的内容。有线索吗? 提前感谢。

  • 我试图从现有数据库(MySQL)中使用liquibase(3.5.5)。 > C: /液化酶-3.5.5/liquibase。bat—驱动程序=com。mysql。jdbc。驱动程序^--classpath=C:/Libraries/mysql-connector-java-5.1.37-bin。jar^--changeLogFile=db。变更日志。xml^--url=“jdbc:mysql:/

  • Liquibase版本:3.3.2 DB平台:SQL服务器2014 驱动程序:jdbc 4.0 我使用GenerateChangeLog命令从我的数据库生成一组新的部署脚本。许多表都没有NULL列,但当我测试Liquibase部署(更新)列时,它们都可以为空。这导致PK创建失败。 样本更改集: 有什么建议吗?

  • 问题内容: 我正在开发一个使用Spring-boot,关系数据库和Elasticsearch的应用程序。 我在代码的2个不同位置使用JSON序列化: 在REST API的响应中。 当代码与Elasticsearch交互时。 我在Elasticsearch中需要一些属性,但我想向应用程序用户隐藏(例如,来自关系数据库的内部ID)。 这是一个实体的例子: 问题 :当对象持久化在Elasticsearc