java - 表上的 UniqueConstrait 在 Hibernate 中不起作用

标签 java sql hibernate

Hibernate 版本为 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”的唯一约束, 我仍然可以添加具有相同名字和姓氏值的行。

我想,我会得到 HibernateException 或其他情况,并且不允许我添加 多行的名字和姓氏值相同。我没有唯一的约束 在数据库级别创建。它就在代码中。

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

最佳答案

您读过javadoc吗? ?

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

关于java - 表上的 UniqueConstrait 在 Hibernate 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19223042/

相关文章:

java - 如何使用 jax -rs 创建 POST 请求

java - 从存在键的映射基础中提取值

java - Local.getCountry() 何时返回 UN M.49 3 位代码而不是 ISO 3166 2 字母代码?

javascript - PHP - 将图像插入数据库

sql - 在另一个表中不存在记录的联接上选择 null

java - 由 org.springframework.beans.factory.BeanCreationException 引起的成功安装 maven 的 Tomcat war 部署错误

Hibernate - 更新与级联类型 all-delete-orphan 映射的集合的正确方法

Hibernate 和三个表发生 java.lang.StackOverflowError

sql-server - SQL Server 2012 CPU 使用率飙升至 100%

具有一个字符选择器的 CSS 子组合器的 Java 正则表达式匹配