编程语言
首页 > 编程语言> > java – 使用JPA指定索引(非唯一键)

java – 使用JPA指定索引(非唯一键)

作者:互联网

如何使用JPA注释定义字段,例如电子邮件具有索引.我们在电子邮件中需要一个非唯一的密钥,因为每天在这个字段上有数百万个查询,而且没有密钥就有点慢.

@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

解决方法:

据我所知,没有一种跨JPA-Provider方式来指定索引.但是,您始终可以直接在数据库中手动创建它们,大多数数据库将在查询计划期间自动选择它们.

标签:java,orm,jpa,hibernate,datanucleus
来源: https://codeday.me/bug/20190918/1811659.html