1
我有一個類A和一個繼承自A的類B.類A具有某個屬性X.類B添加了另一個屬性Y.B的一個實例是唯一的由它的一對屬性{X,Y}來標識。因此,{X,Y}是類B的候選鍵。顯然,由於屬性Y不存在,因此該鍵不存在於A類級別。我使用代理鍵A級。跨不同類/表的唯一約束(TABLE PER SUBCLASS)
現在,我使用Hibernate進行對象關係映射。如果我使用TABLE PER SUBCLASS繼承策略,我不認爲有可能爲屬於不同類的多個屬性(然後在數據庫中,對不同的表)定義UNIQUE約束。
我的問題是我怎樣才能使用Hibernate和更一般的SQL定義這個候選鍵的唯一約束?如果不可能,你推薦什麼?
感謝
我的主鍵在A中定義,這是代理鍵(Long integee)。 UNIQUE約束必須應用於不是主鍵的屬性對{X,Y}。你能爲第一個解決方案提供一個例子嗎? – 2012-03-28 06:00:47
您可以在多個列上擁有聚簇索引和FK。它就像一列一樣工作。值的組合是強制的唯一。 – usr 2012-03-28 10:33:02