我有映射到oracle數據庫表的Object類。 在這個類中,一列在數據庫中有一個默認值。我用這個: @Column(name =「FK_STATUS」,nullable = false,columnDefinition =「int default 1」) 數據庫中的列類型是Number。但我得到「不能在FK_status中插入null」的錯誤。 請幫忙。默認值在hibernate4
回答
因爲我沒有在您的行中看到任何語法錯誤,所以沒有太多的H-3知道我正在使用H-3。
這可能是一個修復,不完全解決您的問題。使用variable
的默認值。
private Integer fkStatus= 1;
這是真實的,但不是在數據庫中處理的默認值。當我更改數據庫中的默認值時,我必須更改源代碼 – AFF
@NGS True,但在源代碼中也有'@Column(name =「FK_STATUS」,nullable = false,columnDefinition =「int default 1」)'write ? –
的columnDefinition將工作
columnDefinition = "int default 1" (should be "default 1")
,但你必須先重新創建數據庫表。這將設置你的列設置爲空值作爲INT 1
那麼,你應該通過
的persistence.xml
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
重建DB或做手工
update {TABLE}
set FK_STATUS = 1
where status is null;
alter table {TABLE} modify (FK_STATUS default 1 NOT NULL);
@NGS,諸如unique,nullable,default等約束是JPA/Hibernate在表創建過程中使用的關鍵字。它在創建表之後沒有任何意義。 例如,如果首先創建一個表格作爲非唯一的列,並且如果您計劃通過提供註釋來控制列的唯一性,則不起作用。
爲表創建提供所有這些類型的元數據。
我不想更改結構,我已經創建了我的表並且它的一個字段具有由DB生成的默認值。我將使用hibernate爲其設置值,但會出現「無法插入空值」錯誤。 – AFF
- 1. Python3 - 默認值爲type的默認值?
- 2. tableView:viewForHeaderInSection:默認值?
- 3. 默認值
- 4. UIPickerView默認值
- 5. 默認值
- 6. 默認值:
- 7. DependencyProperty默認值
- 8. 默認值DatabaseGenerated
- 9. RingtonePreference默認值
- 10. p:selectOneButton默認值
- 11. 默認值f:textarea
- 12. JTextArea默認值?
- 13. 默認值
- 14. 默認值
- 15. mysql默認值?
- 16. 默認JavaScript值
- 17. 默認值
- 18. 默認值特
- 19. C#默認值
- 20. 默認值
- 21. 默認值
- 22. RichTextBox默認值?
- 23. 值或 「默認」
- 24. GetCultureInfo默認值
- 25. DateTimePicker默認值
- 26. 默認值
- 27. scipy.sparse默認值
- 28. MonoTouch.Dialog:No默認值
- 29. attr_accessor默認值
- 30. 默認值
你有Java字段上的任何驗證註釋,比如'@NotNull'? – sp00m
不,我沒有使用@notNull或任何其他驗證註釋 – AFF