如何定义字段,例如email使用JPA注释具有索引.我们需要一个非唯一键,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;
}
Run Code Online (Sandbox Code Playgroud)
我已经看到了一个特定于hibernate的注释,但我正在尝试避免供应商特定的解决方案,因为我们仍然在决定hibernate和datanucleus之间.
更新:
从JPA 2.1开始,您可以这样做.请参阅:此位置不允许使用注释@Index
可能重复:
使用JPA指定索引(非唯一键)
有没有办法在enitity列上定义索引,以提高搜索性能?我看到hibernate给出了@Index和@IndexColumn,但我正在寻找JPA方法来做到这一点.
谢谢
这是我的实体的一个例子,我需要索引一个名称列
@Entity
@Table(name = "MY_TABLE")
public class MyEntity {
private long id;
private String name;
private String sourceInfo;
...
Run Code Online (Sandbox Code Playgroud)