3

テーブルに 2 つのフィールドがある場合、次のように両方を含むインデックスを作成できます。

@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;

これどうやってするの ?

4

1 に答える 1

2

クラスレベルで2番目のインデックスを指定できると思います。

@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;
}
于 2013-01-18T09:08:51.227 に答える