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

StackOverflow https://stackoverflow.com/questions/3504477

Question

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 des lignes qui ont une combinaison unique de A et B. Ni besoins champ / colonne pour ê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 des annotations spécifiques Hibernate qui serait préférable.

Merci d'avance pour votre aide.

- James

Était-ce utile?

La solution

votre deuxième essai

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

devrait fonctionner comme prévu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top