2017-01-24 58 views
0

我目前在Postgresql中使用Hibernate。hibernate唯一約束註解與postgresql查詢的區別

我的數據庫中有一些列需要使用唯一約束進行設置。於是我上網,發現這樣做

查詢在PostgreSQL的方法有兩種:

ALTER TABLE foo ADD UNIQUE (thecolumn); 

Hibernate的註解:

@Table(
    name = "foo", 
    uniqueConstraints = {@UniqueConstraint(columnNames = {"thecolumn"})} 
) 

這是首選的方法是什麼?或者兩種方式都需要?

謝謝。

+2

您是否想從hibernate註釋創建數據庫? 然後使用註釋。 否則,請在您的數據庫中執行此操作。 –

+0

感謝您的回答。我確實想從hibernate註釋中創建數據庫,但是將唯一約束添加到我的數據庫查詢中也是一種很好的做法嗎? – 000000000000000000000

+1

在數據庫中擁有獨特的約束並不會造成傷害,因爲某些原因導致註釋在她的工作中失敗時,這是一個安全網。另外,如果你有很多記錄並且不記得你已經插入了什麼,它會阻止你在數據庫中手動輸入重複。 – Tapaka

回答

1

如果您的數據庫只能由軟件操作(如果您不打算使用任何實體表示法,您必須創建自己的驗證以避免重複),則可以直接在軟件中處理唯一約束。但爲了保持完整性,我建議把它也放在數據庫中。避免人爲錯誤。

如果您的實體配置在您每次更改實體模型時都更新數據庫,那麼DB和ENTITIES將會等於,但如果不是這種情況,則沒有人保證您的列是唯一的。 (除非ID)。