java在多个字段上设置唯一约束
假设我有这样一个实体:
@Entity
public Foo {
@Id
private Long id;
private String name;
private String type;
...
}
有没有一种方法可以表示名称和类型应该是唯一的? 这意味着,例如,您可以使用类型为“y”的名称“x”和类型为“z”的名称“x”,但不能使用类型为“y”的其他“x”
@EmbeddedId不起作用,因为名称可以在以后更改-但类型在实体的整个生命周期中保持不变
# 1 楼答案
可以在
@Table
注释上为实体添加约束。在本例中,您希望使两个连接的字段唯一。您将使用@UniqueConstraint
注释Take a look at the javadoc for ^{}