2010-10-20 53 views
2

我正在爲Web應用程序使用Hibernate over SQL Server。我到目前爲止正在使用「增量」生成器類,並且最近遇到了ConstraintViolation異常。使用「身份」生成器時發生Hibernate異常 - 如何使用

於是,我改變發電機的「身份」,我收到以下錯誤 -

無法將NULL值插入列「assessment_administration_id」,表「faip.dbo.assessment_administration」;列不允許有空值。 INSERT失敗。

以下是映射 -

<class name="AssessmentAdministration" table="assessment_administration"> 
    <id name="id" type="long" column="assessment_administration_id"> 
    <generator class="identity" /> 
    </id> 
    <property name="administrationName" column="administration_name" /> 
</class> 

什麼我錯在這裏做什麼?我看了這篇文章http://www.coderanch.com/t/216051/ORM/java/Hibernate-MSSQL-identity-column,但解決方案沒有發佈。

+0

你可以在這裏找到完整的例子..... http://www.technicalkeeda.com/hibernate-tutorial/hibernate-relationships/one-to-one-mapping-example-in-hibernate – Vicky 2012-12-09 15:52:11

回答

2

您的ID列實際上是IDENTITY列嗎?如果不是,那麼這就是你的問題,因爲Hibernate在使用identity生成器時不會在插入語句中包含ID列,而是依靠數據庫生成值。改變發電機策略後,你是否改變了表格?

+0

什麼是身份證柱?我必須爲此更改數據庫表嗎?請注意,我正在使用SQL Server 2008 – 2010-10-21 00:40:51

+1

@Zoheb An [IDENTITY](http://msdn.microsoft.com/en-us/library/aa933196%28SQL.80%29.aspx)列是列類型,允許會自動增加識別號碼。由於您使用的是其他生成器,因此我假設您的ID列當前不是IDENTITY列,而且您需要更改它。 – 2010-10-21 01:17:54

+0

謝謝Pascal!看起來這應該工作。我會嘗試這個並更新線程。 – 2010-10-21 02:43:50

相關問題