我正在尝试向现有数据库表添加新列。它是一个布尔值,我尝试如下,但得到错误:
无法设置布尔字段 org.jadefalcon.demo.domain.Users.permissionconceptsearchtab 为空值
我在尝试什么(我从搜索中找到了相关信息,但似乎我做错了)
@Column(name = "permissionconceptsearchtab",nullable=false,
columnDefinition="boolean default false")
private boolean permissionconceptsearchtab;
我想避免丢弃表并重新加载数据,因此我想知道我需要做什么,因此在添加此新列时,它会将任何现有行设为false。感谢
答案 0 :(得分:2)
我不太确定这与Hibernate有什么关系 - 你是否使用像hbm2ddl这样的工具自动生成SQL语句来创建表?
只需使用ALTER TABLE ADD COLUMN ...
语句将列添加到表中,在SQL中设置DEFAULT false
值。
您从Hibernate获得的异常是因为原始类型(如boolean
)永远不会是null
,只能是true
或false
。但是,Boolean
可以是null
,Boolean.TRUE
或Boolean.FALSE
。