2013-01-18 8 views
2

Étant donné deux champs dans une table, je peux créer un indice qui encompases à la fois comme suit:Comment mettre plusieurs index sur un champ à l'aide @Index et veille prolongée

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

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

et je peux créer des index sur chaque colonne individuellement

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

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

Mais il ne marche pas me laisser faire les deux, cela ne semble pas être autorisé

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

Comment puis-je faire cela?

Répondre

2

Je pense que vous pouvez spécifier le second indice au niveau de la classe:

@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; 
} 
+0

Thankyou pour cela. –

Questions connexes