2011-09-21 38 views
17
@Column(name = "userId") 
    @UniqueConstraint 
    private Integer userId; 

我正在使用這些註釋將數據輸入到數據庫表中。 我想讓userId字段唯一字段。但是當我做喜歡它它顯示我的錯誤@UniqueConstraints is disallowed for this location.如何應用使用註釋的唯一約束條件

回答

35
@Column(name = "userId",unique=true) 

,或者如果它的數據庫生成ID你也可以做到這一點

@Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private Integer id; 
+3

這不是一個主鍵字段。 – MiguelMunoz

+1

@MiguelMunoz忽略了答案的第二部分,並且與第一部分一致,即「@Column(name =」userId「,unique = true)' – KNU

22

這裏有一個如何使用@UniqueConstraint一個例子:

@Entity 
@Table(name = "contact", 
    uniqueConstraints = @UniqueConstraint(columnNames = {"name", "company_id"})) 
public class Contact { 
    ... 
} 

這指定「名稱」列和「company_id」列的組合將是唯一的。

+1

UniqueConstraint註釋包是什麼? – MiguelMunoz

6

這是對@UniqueConstraint定義的Hibernate doc版本3.5的解釋。

@Entity 
    @Table(name="tbl_sky",uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})}) 
    public class Sky implements Serializable { 
     ... 
    } 

,這是Hibernate 4.3 example爲@UniqueConstraint