2011-04-26 59 views
2

我想添加一个新的列到现有的数据库表中。这是一个布尔值,我下面想等,但得到的错误:Hibernate Annotations(Spring),在添加新的布尔列时设置默认值,出错?

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。谢谢

回答

2

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

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

您从休眠中得到的例外是因为基本类型,像boolean永远不能null,只有truefalse。但是,Boolean可以是null,Boolean.TRUEBoolean.FALSE

相关问题