2011-09-21 10 views
17
@Column(name = "userId") 
    @UniqueConstraint 
    private Integer userId; 

Estoy utilizando estas anotaciones para ingresar datos en la tabla de la base de datos. quiero hacer campo único userId campo. pero cuando estoy haciendo como que se está mostrando me error @UniqueConstraints is disallowed for this location.Cómo aplicar restricciones únicas mediante la anotación

Respuesta

35
@Column(name = "userId",unique=true) 

o si su una base de datos generada ID también se puede hacer esto

@Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private Integer id; 
+3

No es un campo de clave principal. – MiguelMunoz

+1

@MiguelMunoz así que descuide la segunda parte de la respuesta y vaya con la primera parte, es decir, '@Column (name =" userId ", unique = true)' – KNU

22

Aquí está un ejemplo de cómo utilizar @UniqueConstraint:

@Entity 
@Table(name = "contact", 
    uniqueConstraints = @UniqueConstraint(columnNames = {"name", "company_id"})) 
public class Contact { 
    ... 
} 

Esto especifica que la combinación de la columna "nombre" y la columna "company_id" será única.

+1

¿Cuál es el paquete para la anotación UniqueConstraint? – MiguelMunoz

6

Y esta es la explicación de la Hibernate doc versión 3.5 para @UniqueConstraint definición.

@Entity 
    @Table(name="tbl_sky",uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})}) 
    public class Sky implements Serializable { 
     ... 
    } 

y esto es para Hibernate 4.3 example para @UniqueConstraint

Cuestiones relacionadas