我们有以下实体关系,其中用户属于特定组织。我的查询看起来像“select * from User where org=:org”或“select * from User where org=:org and type=:type”
我在 User 类上有单独的索引。第一个查询会很好,因为外键元素上有索引。第二个查询是否要求在 org 和 type 列上使用多列索引。如果是这样,我应该如何注释来创建一个这样的索引。
@Entity
class User {
...
@ManyToOne
@ForeignKey
@Index
Organization org;
@Index
Type type;
...
}
这可以使用 Hibernate 特定的@Table
注解。从文档中:
2.4.1 实体
...
@Table(appliesTo="tableName", indexes = { @Index( name="index1", columnNames={"column1", "column2"} ) } )
在表的列上创建定义的索引tableName
。这可以应用于主表或任何辅助表。这@Tables
注释允许您在不同的表上应用索引。该注释应在以下位置出现:@javax.persistence.Table
or @javax.persistence.SecondaryTable(s)
occurs.
参考
- Hibernate Annotations Reference Guide
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)