gpt4 book ai didi

java - Hibernate - 唯一列约束被忽略

转载 作者:可可西里 更新时间:2023-11-01 06:49:20 26 4
gpt4 key购买 nike

我有一个 MySQL 表来保存标签(即像 Stack Overflow 上使用的标签)。它只有一个 id (pk) 和一个用于保存标签本身的标签列。

我的 Tag 实体的带注释的 get 方法如下所示。

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public int getId() {
return this.id;
}

@Column(name = "tag", unique = true, nullable = false)
public String getTag() {
return this.tag;
}

我在标签上使用了唯一的列约束,因为给定的标签永远不会超过一行。然而,Hibernate 似乎忽略了这一点,即我可以多次保存完全相同的标签,它只是创建一个新行而不是抛出异常。

我是不是遗漏了什么或者这应该有效吗?

最佳答案

来自 UniqueConstraint 的 JavaDoc (@Colunm 上的unique=true 只是一个快捷方式):

This annotation is used to specify that a unique constraint is to be included in the generated DDL for a primary or secondary table.

所以它似乎没有在插入时强制唯一性。在任何情况下,您都应该在数据库中创建一个唯一约束。

关于java - Hibernate - 唯一列约束被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4105164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com