Der unique=true
Element der Column
Annotation und / oder die UniqueConstraint
Anmerkungen, die auf Tabellenebene verwendet werden können, werden verwendet, um anzugeben, dass eine eindeutige Einschränkung in die generierte DDL aufgenommen werden soll .
Mit anderen Worten, sie tun während der Laufzeit nichts, die Überprüfung wird der Datenbank überlassen (was sinnvoll ist, da Eindeutigkeit nicht zuverlässig auf Java-Ebene getestet werden kann) und wenn Sie aus irgendeinem Grund die entsprechende nicht haben Einschränkung(en) auf Datenbankebene definiert, wird nichts passieren.
Fügen Sie die Einschränkung manuell hinzu:
ALTER TABLE Customer ADD CONSTRAINT customer_name_unq UNIQUE (name);
Siehe auch
- JPA 1.0-Spezifikation
- 9.1.4 UniqueConstraint-Anmerkung
- 9.1.5 Spaltenanmerkung
- MySQL-Dokumentation
Solange Sie keine Tabellensperre erwerben (autsch!), können Sie in einer gleichzeitigen Umgebung nicht mit einer SQL-Abfrage auf Eindeutigkeit prüfen.