2011-09-27 95 views
2

我有一個映射超類,它有兩個已經索引的屬性。現在我想要在這兩個屬性上創建一個組索引。到現在爲止它的工作:如何在MappedSuperclass上註釋索引

@MappedSuperclass 
Class A { 
    @Index(name="pa") 
    int a; 
    @Index(name="pb") 
    int b; 
} 

根據Hibernate文檔,我可以詮釋我的新指數與@Table(休眠註釋)。但我不知道要爲必要的applyTo參數設置什麼。

有沒有人試過這個成功之前?

回答

1

Hibernate Documentation

@Table(appliesTo = 「表名」,索引= {@index(名稱= 「index1之間」, COLUMNNAMES = { 「列1」, 「列2」})})創建表tableName的列上定義的索引 。這可以應用於主要的 表或任何輔助表。

更新:
對於您可以嘗試使用@Tables註釋

@Tables(value={@Table(appliesTo="table1", indexes={@Index(name="index1", columnNames={"column1", "column2"})}), 
       @Table(appliesTo="table2", indexes={@Index(name="index1", columnNames={"column1", "column2"})})}) 

但是,這似乎相當繁瑣的@MappedSuperclass。 請注意,@Index註釋具有columnNames屬性,它允許您指定多個列。但是,我不確定是否應該爲每個字段重複索引定義。

+1

以及12個繼承類的哪個表名是正確的?它是一個Mapped超類,它沒有表格。 – Laures