2013-11-27 72 views
2

我想在我的應用領域的一個類添加以下列:Hibernate的獨特領域創造

@Column(name="USER_NAME",length=20,nullable=false,unique=true) 
private String userName; 

原因,我做這一領域的獨特之處在於,我需要確保每個應用程序的用戶用戶名是唯一的。

,但我得到以下錯誤,每當我嘗試加載應用程序:

WARN : org.hibernate.util.JDBCExceptionReporter - SQL Error: 1054, SQLState: 42S22 
ERROR: org.hibernate.util.JDBCExceptionReporter - Unknown column 'employee0_.USER_NAME' in 'field list' 
Nov 27, 2013 12:14:11 PM org.apache.catalina.core.StandardWrapperValve invoke 

如果我做出獨特=假,一切工作就好了。所以我想知道爲什麼我設置unique = true時出現這個錯誤?以及如何確保用戶名字段是唯一的?

感謝您的時間

+0

您是否驗證過該名稱的列? – mabi

+0

@mabi with unique = true,該列不是在應用程序加載時創建的。當unique = false時,列自動創建而沒有問題。問題不在列存在肯定,因爲即使您手動創建列,您仍然會得到錯誤 – MChan

+0

嘗試添加'@Column(name =「USER_NAME」,length = 20,nullable = false,unique = true)''在getter方法 – jos

回答

0

如果你說設置唯一的虛假它的工作原理,當它被設置爲true失敗,它就像在一個SQL表創建一個列的唯一索引所在的表已經有該列中沒有唯一值,在這種情況下,創建該唯一索引將失敗。