J'ai un bean Java. Maintenant, je veux être sûr que le champ doit être unique.
J'utilise le code suivant:
@UniqueConstraint(columnNames={"username"})
public String username;
Mais j'obtiens une erreur:
@UniqueConstraint is dissallowed for this location
Quelle est la bonne façon d'utiliser des contraintes uniques?
Remarque: j'utilise le framework de jeu.
Réponses:
Pour vous assurer qu'une valeur de champ est unique, vous pouvez écrire
L'annotation @UniqueConstraint sert à annoter plusieurs clés uniques au niveau de la table, c'est pourquoi vous obtenez une erreur lors de son application à un champ.
Références (JPA TopLink):
la source
Vous pouvez utiliser au niveau de la classe avec la syntaxe suivante
la source
J'utilise actuellement le framework de jeu avec hibernate et annotation JPA 2.0 et ce modèle fonctionne sans problème
J'espère que cela a aidé.
la source
Remarque: Dans Kotlin, la syntaxe pour déclarer les tableaux dans les annotations utilise
arrayOf(...)
au lieu de{...}
Remarque: à partir de Kotlin 1.2, il est possible d'utiliser la
[...]
syntaxe afin que le code devienne beaucoup plus simplela source
Way1:
- Ici, Colonne1 et Colonne2 agissent séparément comme des contraintes uniques. Ex: si à tout moment la valeur de colonne1 ou colonne2 correspond, vous obtiendrez une erreur UNIQUE_CONSTRAINT.
Way2:
- Ici, les valeurs combinées colonne1 et colonne2 agissent comme des contraintes uniques
la source
Contraintes uniques utilisées uniquement pour créer une clé composite, qui sera unique et représentera la table comme clé primaire combinée comme unique.
la source
vous pouvez utiliser @UniqueConstraint au niveau de la classe, pour la clé primaire combinée dans une table. par exemple:
classe publique ProductAttribute {}
la source
L'annotation unique doit être placée juste au-dessus de la déclaration d'attribut. UniqueContraints va dans l'annotation @Table au-dessus de la déclaration de classe de données. Voir ci-dessous:
la source