Hibernate 允许通过使用 @org.hibernate.annotations.Index
在 @ManyToOne
映射上添加索引。
有没有办法在@ManyToMany
关系中指定连接表的索引?
如果实体 A
和实体 B
有一个 @ManyToMany
并且 A
是拥有方,连接表将有一个复合索引(a1,b1)。
我想知道这是否足够,或者我是否需要创建另一个索引 (b1, a1)?
最佳答案
在这里回答一个 6 年前的问题,但仍然相关。我在遇到同样的问题时遇到了这个问题。在网上搜索使得 JPA 似乎不支持连接表上的索引,但它支持,这是 documented here .
例如,当使用@JoinTable 时,您可以在注释上指定索引
@ManyToMany()
@JoinTable(name = "car_driver",
joinColumns = @JoinColumn(name = "car_id"),
inverseJoinColumns = @JoinColumn(name = "driver_id"),
indexes = {
@Index(name = "idx_car_driver_car_id", columnList = "car_id"),
@Index(name = "idx_car_driver_driver_id", columnList = "driver_id")
}
)
private Set<Driver> drivers;
关于sql - JPA @ManyToMany 连接表索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8406457/