如何使用注释应用唯一约束

时间:2011-09-21 08:54:27

标签: hibernate annotations

@Column(name = "userId")
    @UniqueConstraint
    private Integer userId;

我正在使用这些注释将数据输入数据库表。 我想使userId字段成为唯一字段。但是,当我这样做时,它显示错误@UniqueConstraints is disallowed for this location.

3 个答案:

答案 0 :(得分:35)

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

或者如果数据库生成ID,您也可以执行此操作

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

答案 1 :(得分:23)

以下是如何使用@UniqueConstraint的示例:

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

这指定“name”列和“company_id”列的组合将是唯一的。

答案 2 :(得分: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

相关问题