2011-09-27 88 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