2016-09-14 66 views
1

是否可以對javax.persistence庫中的嵌入式實體有一個唯一的約束,而不必單獨提及所有列?對嵌入式實體的唯一約束?

我有什麼:

@Table(uniqueConstraints = { @UniqueConstraint(columnNames = { "someReference", "id1", "id2" }) }) 
public class A { 
    @Embedded 
    private B embedded; 
    private String someReference; 
} 

@Embeddable 
public class B { 
    private long id1; 
    private long id2; 
} 

我想要什麼(或多或少):

@Table(uniqueConstraints = { @UniqueConstraint(columnNames = {"someReference", "embedded" }) }) 

回答

0

沒有。當我們將任何實體制作爲嵌入式時,通常會理解,一旦嵌入式對象被插入,就不會再將相同的嵌入式對象保存在關係數據庫中。但是可能會出現這樣的用例,我們可能只希望某些嵌入對象的屬性組合對於關係數據庫是唯一的。

對於文檔數據存儲,可以在模式中的不同文檔中顯示相同的嵌入對象。