0

休眠版本是 3.x

下面是表结构,

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或否则,我不会被允许为多行添加相同的名字和姓氏值。我没有在数据库级别创建唯一约束。它就在代码中。

为什么我可以添加重复行?还是我对唯一约束的理解是错误的?

4

1 回答 1

2

你读过javadoc吗?

在生成的 DDL 中包含唯一约束只是一个提示。它在运行时不会做任何事情。基本上,您需要在数据库级别创建约束。

于 2013-10-07T11:03:42.623 回答