问题
我有一个Java bean。现在,我想确保该字段应该是唯一的。我使用以下代码:
@UniqueConstraint(columnNames={"username"})
public String username;
但我得到一些错误:
@UniqueConstraint is dissallowed for this location
什么是使用独特约束的正确方法?
**注意:**我正在使用play框架。
#1 热门回答(307 赞)
要确保字段值是唯一的,你可以编写
@Column(unique=true)
String username;
@UniqueConstraint注释用于在表级别注释多个唯一键,这就是将其应用于字段时出错的原因。
参考文献(JPA TopLink):
@UniqueConstraint
@Column
#2 热门回答(80 赞)
你可以在类级别使用以下语法
@Entity
@Table(uniqueConstraints={@UniqueConstraint(columnNames={"username"})})
public class SomeEntity {
@Column(name = "username")
public String username;
}
#3 热门回答(29 赞)
我目前正在使用play框架和hibernate以及JPA 2.0注释,这个模型没有问题
@Entity
@Table(uniqueConstraints={@UniqueConstraint(columnNames = {"id_1" , "id_2"})})
public class class_name {
@Id
@GeneratedValue
public Long id;
@NotNull
public Long id_1;
@NotNull
public Long id_2;
}
希望它有所帮助。