此位置不允许使用注释@Index

时间:2013-07-12 17:12:25

标签: java jpa hibernate-annotations

尝试使用@Index中的javax.persistence注释时,Eclipse会给我这个错误。

我在java.util.Date字段之前使用它,在使用@Entity注释的类中。

之前,我在同一个地方使用org.hibernate.annotations.Index,一切都很好。

我将 hibernate-core 4.1.9.Final 升级到 4.3.0.Beta3 hibernate-commons-annotation 从 4.0.1 4.0.2 。它表示@Index已弃用,建议使用javax.persistence

我发现的所有文档和示例都将@Index放在了班级成员之前。我错过了什么?

3 个答案:

答案 0 :(得分:39)

JPA索引注释只能用作@Table@SecondaryTable等其他注释的一部分(请参阅javadoc中的另请参阅部分):

@Table(indexes = { @Index(...) })

答案 1 :(得分:0)

见这里:https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#annotations-jpa-index

使用它:

@Table 
.......,indexes = @Index(columnList = ("COLUMN_NAME"),name="CUSTOM NAME AT INDEX",unique=false)
......

答案 2 :(得分:-1)

如果您使用Eclipselink,可以将此导入添加到您的班级:

import org.eclipse.persistence.annotations.Index;

然后将@Index添加到您的字段中,如下所示:

public class FooClass {
   @Index
   int field1;
}

@Index(columnNames = {"field1", "field2"})
public class FooClass {       
   int field1;
   int field2;
}