JPA - 定义多列唯一约束

时间:2011-07-11 13:11:57

标签: java jpa persistence

是否可以使用JPA定义多个唯一约束。

@Entity
class Foo {
    long id;

     String name;

     MyEnum type;

}

Foo.id应该是唯一的,因为{Foo.name,Foo.type}的组合应该是唯一的 例
id,名称,类型
1,“name1”,“type1”
2,“name1”,“type2”
3,“name1”,“type1”//错误重复的id = 1

如何使用JPA注释实现此目的?

由于

1 个答案:

答案 0 :(得分:15)

使用uniqueConstraints注释的Table属性:

@Table(name = "FOO", uniqueConstraints={
    @UniqueConstraint(columnNames = {"NAME", "TYPE"})
})