繁体   English   中英

hibernate4中的默认值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM