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