Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Hibernate中不工作的表上执行UniqueConstrait_Java_Sql_Hibernate - Fatal编程技术网

Java 在Hibernate中不工作的表上执行UniqueConstrait

Java 在Hibernate中不工作的表上执行UniqueConstrait,java,sql,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", uniqueCo

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”的唯一约束, 我仍然能够添加具有相同firstname和lastname值的行

我想,我会得到
HibernateException
或其他,我将不被允许添加 多行的firstname和lastname值相同。我没有唯一的约束 在数据库级别创建。它就在代码里

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

您阅读了吗


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

谢谢。在我的示例中,我正在执行插入和选择操作(添加到表中并从表中查询)。这些是DML语句。您提到的Java文档更多地讲述了DDL语句。所以,我还是不明白!你得到的不是什么?”@UniqueConstraint'仅用于DDL生成。换句话说,它将向数据库添加唯一约束(如果您选择使用该DDL)。注释在运行时对您没有任何作用。当我需要在DB中显式设置约束时,如果在运行时没有任何作用,那么将该约束放入实体类有什么用?您可以使用实体(自动)创建数据库(DDL脚本),在这种情况下,您需要该信息。