JPA - @Column (unique=true) - Ce qui est réellement de point d'avoir 'unique' attribut?
Suppose que je vais avoir le "sujet" de la table
CREATE TABLE subject (id int PRIMARY KEY, name VARCHAR(255) **UNIQUE**)
et associés de l'Objet associé,
@Entity
@Table(name="subject")
public class SubjectDO {
@Id
@Column(name="id")
int id;
@Column(name="name", unique=true)
String name;
...
//Getter-Setter methods
}
Lorsque j'essaie d'enregistrer l'objet doublons " nom "avec et sans " unique=true' définie, je reçois un comportement similaire (même exception). Et il est évident que l'implémentation JPA ne peux rien y faire à moins d'atteindre DB pour vérification.
Quel est le réel de cas d'utilisation pour elle?
(Je suis en supposant ici, l'unique contrainte est définie au niveau de Base de données trop.)
Vous devez vous connecter pour publier un commentaire.
unique
dans@Column
est utilisé que si vous laissez votre fournisseur JPA créer la base de données pour vous - qu'il va créer la contrainte unique sur la colonne spécifiée. Mais si vous avez déjà la base de données, ou de le modifier une fois créé, puisunique
n'a aucun effet.unique=true
dans@Column
annotation sera utilisé uniquement dansDDL generation
, il n'a pas d'impact au cours de l'exécution. La réelle unicité des vérifications qui se passe dans ledatabase
.