Hibernate verstion является 3.xUniqueConstrait на столе не работает в спящем
Ниже структура таблицы,
firstname | lastname | salary
-----------------------------------
firstname | lastname | 100
firstname | lastname | 500
firstname | lastname | 1000
Ниже приведен код Java,
@Entity
@Table(name="TABLE_NAME",schema="SchemaName",
uniqueConstraints={@UniqueConstraint(columnNames={"firstname","lastname"})})
Хотя у меня есть упомянутое уникальное ограничение на «firstname» и «lastname» кортежей, утра все еще в состоянии добавить строки с теми же значениями firstname и lastname.
Я думал, что получил бы HibernateException
или иначе, и мне не разрешат добавлять то же имя и фамилию для нескольких строк. У меня нет единственного ограничения , созданного на уровне базы данных. Его там только в коде.
Почему я могу добавить повторяющиеся строки? Или мое понимание уникального ограничения неверно?
Спасибо. В моем примере выполняется операция Insert и Select (добавление в таблицу и запрос из таблицы). Это инструкции DML. Java Doc, на который вы указали, больше говорит о заявлениях DDL. Итак, я до сих пор не получаю! – user2488578
Что не вы получаете? '@UniqueConstraint' используется только для генерации DDL. Другими словами, это добавит уникальное ограничение для базы данных (если вы решите использовать этот DDL). Аннотация не делает ничего для вас во время выполнения. –
Когда мне нужно явно установить ограничение в БД, зачем использовать это ограничение в классе сущности, если это ничего не будет делать во время выполнения? – user2488578