2011-07-11 24 views
8

JPAを使用して複数の一意制約を定義することは可能ですか?JPA - 複数列の一意制約の定義

@Entity 
class Foo { 
    long id; 

    String name; 

    MyEnum type; 

} 

{Foo.name、Foo.type}の組み合わせのように、Foo.idは一意である必要があります。
Ex。
ID、名前、タイプ
1、 "NAME1"、 "TYPE1"
2、 "NAME1"、 "TYPE2"
3、 "NAME1"、ID = 1

の "TYPE1" //エラー重複

JPAアノテーションを使用してこれを達成するにはどうすればよいですか?

おかげTable注釈のuniqueConstraints属性を持つ

答えて

14

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

Oracleはその列名を持っていないプロパティが明示的に列の注釈で指定された属性見つからない列を報告します。 – Stephane

関連する問題