De unique=true
element van de Column
annotatie en/of de UniqueConstraint
annotaties die op tabelniveau kunnen worden gebruikt, worden gebruikt om aan te geven dat een unieke beperking moet worden opgenomen in de gegenereerde DDL .
Met andere woorden, ze doen niets tijdens de runtime, de verificatie wordt overgelaten aan de database (wat logisch is omdat uniciteit niet betrouwbaar kan worden getest op Java-niveau) en als u om welke reden dan ook niet over de bijbehorende beperking(en) gedefinieerd op databaseniveau, gebeurt er niets.
Voeg de beperking handmatig toe:
ALTER TABLE Customer ADD CONSTRAINT customer_name_unq UNIQUE (name);
Zie ook
- JPA 1.0-specificatie
- 9.1.4 UniqueConstraint-annotatie
- 9.1.5 Kolomannotatie
- MySQL-documentatie
Tenzij u een tabelvergrendeling aanschaft (au!), kunt u niet op uniciteit controleren met een SQL-query in een gelijktijdige omgeving.