2014-04-01 34 views
2

的休眠註釋@Index已過時,但我無法找到的文檔或任何提示如何交換它。等效休眠@index的?

@Entity 
class MyEntity { 
     @Index(name = "name") //org.hibernate.annotations.Index 
     private String name; 

     @Index(name = "age") 
     private int age; 
} 

結果: @deprecated Using {@link javax.persistence.Index} instead. 但如果我更改導入:Annotation disallowed for this location

所以:如何上述實體必須看使用非過時索引時是怎樣的?

回答

3

如答案here所指定,javax.persistence.Index中的索引註釋只能用作另一個註釋的一部分。

@Table(name = "myTable", indexes = { @Index("name")}) 
@Entity 
class MyEntity { 
     @Index(name = "name") 
     private String name; 

     @Index(name = "age") 
     private int age; 
} 
+0

我應該只在「@ Table」註釋中添加「name」索引嗎?或者我應該列出所有帶註釋的索引嗎? – membersound

+0

如果你只是想「名」就用的名字,這取決於你希望你的桌子上有多少索引。不要忘記你可以有索引組合。 – david99world

+0

你能糾正你的代碼示例或使其更清楚了嗎?如果我理解正確,這些屬性不應該有任何'@索引'註釋?或者'@ Table'和屬性都需要註解?是否有可能給指數一個名字? Hibernate的'@ Index'支持這個。 – Jack