2011-07-11 26 views
8

¿Es posible usar JPA para definir múltiples restricciones únicas?JPA: definición de restricciones únicas de varias columnas

@Entity 
class Foo { 
    long id; 

    String name; 

    MyEnum type; 

} 

Foo.id debe ser único al igual que combinaciones de {Foo.name, Foo.type}.
Ej.
identificación, nombre, tipo
1, "nombre1", "tipo 1"
2, "nombre1", "tipo2"
3, "nombre1", "tipo 1" // error duplicado de id = 1

¿Cómo logro esto usando anotaciones JPA?

Gracias

Respuesta

14

Con el atributo uniqueConstraints de la anotación: Table

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

Oracle reportará una columna que no se encuentra si la propiedad no tiene su nombre de columna atributo especificado explícitamente en la anotación de la columna. – Stephane

Cuestiones relacionadas