unique=true
елемент на Column
анотация и/или UniqueConstraint
анотацията, която може да се използва на ниво таблица, се използва за уточняване, че едно уникално ограничение трябва да бъде включено в генерирания DDL .
С други думи, те не правят нищо по време на изпълнение, проверката се оставя на базата данни (което има смисъл, тъй като unicity не може да бъде тестван надеждно на ниво Java) и ако по някаква причина нямате съответния ограничение(а), дефинирани на ниво база данни, нищо няма да се случи.
Добавете ограничението ръчно:
ALTER TABLE Customer ADD CONSTRAINT customer_name_unq UNIQUE (name);
Вижте също
- Спецификация на JPA 1.0
- 9.1.4 Анотация с уникално ограничение
- 9.1.5 Анотация на колона
- Документация на MySQL
Освен ако не придобиете заключване на таблицата (ооо!), не можете да проверите за еднозначност с SQL заявка в едновременна среда.