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

Rom*_*omi 17 annotations hibernate

@Column(name = "userId")
    @UniqueConstraint
    private Integer userId;
Run Code Online (Sandbox Code Playgroud)

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

Nim*_*sky 35

@Column(name = "userId",unique=true)
Run Code Online (Sandbox Code Playgroud)

或者如果它是DB生成的ID,您也可以这样做

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;
Run Code Online (Sandbox Code Playgroud)

  • 这不是主要关键领域. (3认同)

Mig*_*noz 23

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

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

这指定"name"列和"company_id"列的组合将是唯一的.


erh*_*hun 6

这是Hibernate doc version 3.5的@UniqueConstraint定义解释.

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

这是针对@UniqueConstraint的Hibernate 4.3示例