[英]default value in hibernate4
我有映射到oracle数据库表的Object类。 在此类中,数据库中的一列具有默认值。 我用了这个:@Column(name =“ FK_STATUS”,nullable = false,columnDefinition =“ int default 1”)数据库中的列类型是Number。 但出现“无法在FK_status中插入null”错误。 请帮忙。
由于我没有在您的行中看到任何语法错误,因此我在使用H-3时不太了解H-3。
这可能是一个解决方法,不能完全解决您的问题。
对variable
使用默认值。
private Integer fkStatus= 1;
columnDefinition将起作用
columnDefinition = "int default 1" (should be "default 1")
但是您必须首先重新创建数据库表。 它将设置您的列以将空值设置为int 1
好吧,您应该通过以下方式重新创建数据库
persistence.xml
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
或手动执行
update {TABLE}
set FK_STATUS = 1
where status is null;
alter table {TABLE} modify (FK_STATUS default 1 NOT NULL);
@NGS,唯一性,可空性,默认性等约束是JPA / Hibernate在表创建期间将使用的关键字。 创建表后,它没有任何意义。 例如,如果您首先创建一个表,该表的一列不唯一,并且您计划通过提供注释来控制该列的唯一性,那么它将无法正常工作。
为创建表提供了所有这些类型的元数据。
我想在您的Hibernate-Mapping Column代码中进行小的更正,请参见下文
@Column(name = "FK_STATUS" ,nullable = false, columnDefinition = "int(10) default 1")
使用了这个,让我知道,如果这不适用于您的代码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.