web-dev-qa-db-fra.com

Comment appliquer des contraintes uniques à l'aide d'Annotation

@Column(name = "userId")
    @UniqueConstraint
    private Integer userId;

J'utilise ces annotations pour entrer des données dans la table de base de données. Je veux faire un champ unique de champ userid. Mais quand je fais comme ça, ça me montre une erreur @UniqueConstraints is disallowed for this location.

17
Romi
@Column(name = "userId",unique=true)

ou si c'est un dB généré [~ # ~ # ~] ID [~ # ~] Vous pouvez aussi faire cela

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;
35
NimChimpsky

Voici un exemple de comment utiliser @uniqueconstraint:

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

Ceci spécifie que la combinaison de la colonne "Nom" et la colonne "Company_id" sera unique.

23
MiguelMunoz

Et c'est l'explication de la Hibernate Doc version 3.5 pour @UniqueConstraint Définition.

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

et ceci est pour Hibernate 4.3 exemple pour @uniqueconstraint

6
erhun