java在Hibernate JPA2上使用唯一约束 2 年,2 月 Questions & Answers 58770 如何在hibernate POJO上实现我的唯一约束?假设数据库不包含任何 我在@Column()注释中看到了unique属性,但我无法使它工作 如果要将此约束应用于多个列,该怎么办
# 1 楼答案 在JPA2中,可以将唯一约束直接添加到字段: @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; } IMHO将唯一约束直接指定给属性要比在表中指定时好得多 但是,如果需要声明复合唯一键,那么在@table注释中声明它是您唯一的选择
# 2 楼答案 基本上,如果没有数据库支持,就无法实现唯一约束 @Column的@UniqueConstraint和unique属性是模式生成工具生成相应约束的指令,它们本身不实现约束 您可以在插入新实体之前进行某种手动检查,但在这种情况下,您应该注意并发事务可能存在的问题 因此,在数据库中应用约束是首选
# 3 楼答案 可以在类中使用@Table(uniqueConstraints = ...)注释声明唯一约束 @Entity @Table(uniqueConstraints= @UniqueConstraint(columnNames = {"surname", "name"})) public class SomeEntity { ... }
# 1 楼答案
在JPA2中,可以将唯一约束直接添加到字段:
IMHO将唯一约束直接指定给属性要比在表中指定时好得多
但是,如果需要声明复合唯一键,那么在
@table
注释中声明它是您唯一的选择# 2 楼答案
基本上,如果没有数据库支持,就无法实现唯一约束
@Column
的@UniqueConstraint
和unique
属性是模式生成工具生成相应约束的指令,它们本身不实现约束您可以在插入新实体之前进行某种手动检查,但在这种情况下,您应该注意并发事务可能存在的问题
因此,在数据库中应用约束是首选
# 3 楼答案
可以在类中使用
@Table(uniqueConstraints = ...)
注释声明唯一约束