如何使用JPA注释定义一个字段,例如email
,并将其设置为索引。我们需要在email
上创建一个非唯一键,因为每天有数百万次查询该字段,没有键会导致查询速度变慢。
@Entity
@Table(name="person",
uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"}))
public class Person {
// Unique on code and uid
public String code;
public String uid;
public String username;
public String name;
public String email;
}
我看到了一个特定于Hibernate的注释,但我想避免供应商特定的解决方案,因为我们仍在Hibernate和Datanucleus之间做决定。
更新:
从JPA 2.1开始,您可以这样做。请参阅:The annotation @Index is disallowed for this location