2011-07-11 7 views
8

Czy jest możliwe za pomocą JPA zdefiniowanie wielu unikalnych ograniczeń.JPA - definiowanie unikalnych więzów wielokolumnowych

@Entity 
class Foo { 
    long id; 

    String name; 

    MyEnum type; 

} 

Foo.id powinien być unikalny, podobnie jak kombinacje {Foo.name, Foo.type}.
Przykł.
identyfikator, nazwisko, typ
1 "nazwa1", "typu 1"
2 "nazwa1", "TYPE2"
3 "nazwa1", "typu 1" // błąd duplikat id = 1

Jak osiągnąć to za pomocą adnotacji JPA?

Dzięki

Odpowiedz

14

Z atrybut Table adnotacji uniqueConstraints:

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

Oracle zgłosi kolumny nie znaleziono jeżeli nieruchomość nie posiada swoją nazwę kolumny atrybut wyraźnie określona w adnotacji kolumnie. – Stephane