有没有一种方法可以使用JPA指定在不同的列集上应该有多个唯一约束?
@Entity @Table(name="person", uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"})) public class Person { // Unique on code and uid public String code; public String uid; // Unique on username public String username; public String name; public String email; }
我已经看到了特定于hibernate的注释,但是由于我们仍在确定hibernate和数据核之间的关系,因此我试图避免使用特定于供应商的解决方案。
所述@Table的属性uniqueConstraints实际接受的这些阵列。您的示例只是具有单个元素的数组的简写。否则,它看起来像:
@Table
uniqueConstraints
@Table(name="person", uniqueConstraints={ @UniqueConstraint(columnNames={"code", "uid"}), @UniqueConstraint(columnNames={"anotherField", "uid"}) })
只要唯一性约束仅基于一个字段,就可以@Column(unique=true)在该列上使用。
@Column(unique=true)