Comment spécifier qu'une combinaison de colonnes doit être une contrainte unique utilisant des annotations?

voix
12

Je veux vous assurer que toutes les lignes de ma table ont une combinaison unique de deux champs, et je veux le préciser à l'aide des annotations dans ma classe d'entité. Je l'ai essayé d'utiliser une combinaison de @Table et @UniqueConstraint mais apparemment je le fais mal, dans ce que je ne peux pas sembler indiquer que les colonnes séparées doivent être uniques (je peux déjà indiquer que l'utilisation de la propriété unique @ colonne) plutôt d'une combinaison de colonnes. Par exemple, je veux une table qui a des champs A et B pour contenir uniquement les lignes qui ont une combinaison unique de A et B. Aucun champ / colonne doit être unique, c'est la combinaison des deux qui doit être unique.

Voici ce que j'ai essayé jusqu'à présent sans joie:

@Table(name = MY_TABLE, 
       uniqueConstraints = @UniqueConstraint(columnNames = 
                                             { FIELD_A, FIELD_B }))

et

@Table(name = MY_TABLE, 
       uniqueConstraints = { @UniqueConstraint(columnNames = 
                                               { FIELD_A, FIELD_B }) })

Quelqu'un peut-il s'il vous plaît suggérer la bonne façon de le faire? De plus, s'il est possible d'utiliser les annotations JPA au lieu d'Hibernate annotations spécifiques qui seraient préférables.

Merci d'avance pour votre aide.

--James

Créé 17/08/2010 à 17:00
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
14

votre deuxième essai

@Table(name = "MY_TABLE", 
   uniqueConstraints = { @UniqueConstraint(columnNames = 
                                           { "FIELD_A", "FIELD_B" }) })

devrait fonctionner comme prévu.

Créé 17/08/2010 à 19:48
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more