java - 你如何使用@index和hibernate在一个字段上放置多个索引

标签 java hibernate annotations indexing

给定一个表中的两个字段,我可以创建一个包含这两个字段的索引,如下所示:

@org.hibernate.annotations.Index(name = "IDX_REPORTID_RECNO")
private Integer reportId;

@org.hibernate.annotations.Index(name = "IDX_REPORTID_RECNO")
private Integer recNo;

我可以在每一列上单独创建索引

@org.hibernate.annotations.Index(name = "IDX_REPORTID")
private Integer reportId;

@org.hibernate.annotations.Index(name = "IDX_RECNO")
private Integer recNo;

但它不让我两者都做,这似乎是不允许的

@org.hibernate.annotations.Index(name = "IDX_REPORTID_RECNO")
@org.hibernate.annotations.Index(name = "IDX_REPORTID")
private Integer reportId;

@org.hibernate.annotations.Index(name = "IDX_REPORTID_RECNO")
@org.hibernate.annotations.Index(name = "IDX_RECNO")
private Integer recNo;

我该怎么做?

最佳答案

我认为你可以在类级别指定第二个索引:

@org.hibernate.annotations.Table(indexes = 
    @org.hibernate.annotations.Index(name = "IDX_REPORTID_RECNO",
        columnNames = {"reportId", "recNo"})
)
public class MyEntity {
    @org.hibernate.annotations.Index(name = "IDX_REPORTID")
    private Integer reportId;

    @org.hibernate.annotations.Index(name = "IDX_RECNO")
    private Integer recNo;
}

关于java - 你如何使用@index和hibernate在一个字段上放置多个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14395264/

相关文章:

java - hibernate 4 log4j 查看查询参数

java - Hibernate session.flush() 即使设置了自动提交

java - 将 Hibernate 应用程序移动到 JBoss - 超出已声明序号参数数量的位置

java - 发现带注释的方法

ios - 构建 MapView 注释非常慢

Java - JPanel 与 Canvas

java - GSON - 更新 .json 文件

java - 使用 Java 版本 11 或更高版本构建时,kaptDebugKotlin 崩溃

annotations - 带有 cli 的 Doctic2 自动加载程序必须使用 AnnotationRegistry

Java 默认访问级别(包私有(private)访问)。为什么用它?