簡體   English   中英

Hibernate - 忽略唯一列約束

[英]Hibernate - unique column constraint being ignored

我有一個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只是一個快捷方式):

此批注用於指定將唯一約束包含在主表或輔助表的生成DDL中。

所以它似乎沒有強制插入時的唯一性。 在任何情況下,您都應該在數據庫中創建唯一約束。

你想念這只是一個信息。

您還應該在數據庫中的列上添加約束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM