2016-12-03 25 views
0

在下面的實體中,我想在db中做一個獨特的寫操作,但是直到我在db表中設置它纔會起作用。甚至更多 - 如果我刪除該註釋,那麼它仍然工作,如果它被設置在表中。@UniqueConstraint如何工作?

@Entity 
@Table(name = "score_record", catalog = "solardb", uniqueConstraints = { 
     @UniqueConstraint(columnNames = { "topic_id", "user_id" }) }) 
public class ScoreRecord { 
    private Integer recordId; 
    private Integer userId; 
    private Integer score; 

那麼真正的@UniqueConstraint的目的是什麼?它是否像「提醒」一樣有效?

回答

0

不僅像「提醒」。如果您將從您的類生成數據庫方案,則此方案的DDL將包含您在註釋@UniqueConstraint中指定的約束。

JavaDoc for @UniqueConstraint

1

它會拋出當您保存另一個ScoreRecord與現有的用戶名/ recoreId錯誤。列中也會有數據庫中的約束關鍵字(用於遷移等)