我正在尝试向现有数据库表中添加一个新列。这是一个 boolean 值,我正在尝试如下但收到错误:
Can not set boolean field org.jadefalcon.demo.domain.Users.permissionconceptsearchtab to null value
我在尝试什么(我通过搜索找到了这方面的信息,但似乎我做错了)
@Column(name = "permissionconceptsearchtab",nullable=false,
columnDefinition="boolean default false")
private boolean permissionconceptsearchtab;
我想避免不得不删除表并重新加载数据,所以我想知道我需要做什么才能在添加这个新列时将任何现有行设为 false。谢谢
最佳答案
我不太确定这与 Hibernate 有什么关系 - 您是否使用 hbm2ddl 之类的工具来自动生成 SQL 语句来创建表?
只需使用 ALTER TABLE ADD COLUMN ...
语句将列添加到表中,并在 SQL 中设置 DEFAULT false
值。
你从 Hibernate 得到的异常是因为原始类型,比如 boolean
永远不可能是 null
,只能是 true
或 false
。但是,Boolean
可以是 null
、Boolean.TRUE
或 Boolean.FALSE
。
关于java - Hibernate Annotations(Spring),添加新 boolean 列时设置默认值,出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5797326/