Hibernate Annotations(Spring),在添加新布尔列时设置默认值,得到错误?

时间:2011-04-26 22:42:07

标签: java database hibernate spring jpa

我正在尝试向现有数据库表添加新列。它是一个布尔值,我尝试如下,但得到错误:

  

无法设置布尔字段   org.jadefalcon.demo.domain.Users.permissionconceptsearchtab   为空值

我在尝试什么(我从搜索中找到了相关信息,但似乎我做错了)

@Column(name = "permissionconceptsearchtab",nullable=false,
columnDefinition="boolean default false")
private boolean permissionconceptsearchtab;

我想避免丢弃表并重新加载数据,因此我想知道我需要做什么,因此在添加此新列时,它会将任何现有行设为false。感谢

1 个答案:

答案 0 :(得分:2)

我不太确定这与Hibernate有什么关系 - 你是否使用像hbm2ddl这样的工具自动生成SQL语句来创建表?

只需使用ALTER TABLE ADD COLUMN ...语句将列添加到表中,在SQL中设置DEFAULT false值。

您从Hibernate获得的异常是因为原始类型(如boolean)永远不会是null,只能是truefalse。但是,Boolean可以是nullBoolean.TRUEBoolean.FALSE