我正在创建一个多列索引,如下所示:
@Entity
public class Ranking extends Model {
@ManyToOne
@Index(name = "ranking_ix")
public Rankable rankable;
@ManyToOne
@Index(name = "ranking_ix")
public Criteria criteria;
@Index(name = "ranking_ix")
public double rank;
}
但是我看不到如何控制三列在复合索引中的出现顺序(这可能是确保最佳查询性能所必需的)。如何实现?
最佳答案
这可以用 org.hibernate.annotations.Table 注释指定,除了 javax.persistence.Table 注释外还使用它:
@Entity
@javax.persistence.Table(name="Ranking")
@org.hibernate.annotations.Table(
appliesTo="Ranking",
indexes = { @Index(name="ranking_ix", columnNames = { "rankable", "criteria", "rank" } ) }
)
public class Ranking extends Model {
@ManyToOne
public Rankable rankable;
@ManyToOne
public Criteria criteria;
@Index(name = "ranking_ix")
public double rank;
}
关于java - 如何在 Hibernate 的多列索引中指定列的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4800499/