Fer*_*deh 24 java hibernate unique unique-constraint
如何在hibernate POJO上实现我的独特约束?假设数据库不包含任何数据库.
我已经看到了@Column()注释中的唯一属性,但我无法让它工作?
如果我想将此约束应用于多个列,该怎么办?
Hon*_*ons 45
您可以使用@Table(uniqueConstraints = ...)类中的注释声明唯一约束
@Entity
@Table(uniqueConstraints=
@UniqueConstraint(columnNames = {"surname", "name"}))
public class SomeEntity {
...
}
Run Code Online (Sandbox Code Playgroud)
axt*_*avt 33
基本上,没有数据库支持,您无法实现唯一约束.
@UniqueConstraint和unique属性@Column是用于生成相应约束的模式生成工具的指令,它们本身不实现约束.
您可以在插入新实体之前进行某种手动检查,但在这种情况下,您应该了解并发事务可能存在的问题.
因此,在数据库中应用约束是首选.
wil*_*824 19
在JPA2中,您可以将Unique约束直接添加到字段:
@Entity
@Table(name="PERSON_TABLE")
public class Person{
@Id
@Column(name = "UUID")
private String id;
@Column(name = "SOCIALSECURITY", unique=true)
private String socialSecurityNumber;
@Column(name = "LOGINID", unique=true)
private String loginId;
}
Run Code Online (Sandbox Code Playgroud)
恕我直言,更好的是将唯一约束直接分配给属性而不是在表的开始时.
但是,如果需要声明复合唯一键,则在@table注释中声明它是唯一的选择.
| 归档时间: |
|
| 查看次数: |
54245 次 |
| 最近记录: |