java - tutorial - La anotación @Index no está permitida para esta ubicación
javax persistence annotations (3)
Consulte aquí: https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#annotations-jpa-index
utilizar esta:
@Table
.......,indexes = @Index(columnList = ("COLUMN_NAME"),name="CUSTOM NAME AT INDEX",unique=false)
......
Al intentar usar la anotación @Index
desde javax.persistence
, Eclipse me da este error.
Lo estoy usando justo antes del campo java.util.Date
, dentro de una clase anotada con @Entity
.
Antes, estaba usando org.hibernate.annotations.Index
en el mismo lugar y estaba bien.
El problema comenzó después de que actualicé hibernate-core de 4.1.9.Final a 4.3.0.Beta3 e hibernate-commons-anotación desde 4.0.1 a 4.0.2 . Dice que @Index
está en desuso y recomienda javax.persistence
.
Todos los documentos y ejemplos que he encontrado ponen @Index
antes de los miembros de la clase. ¿Qué me estoy perdiendo?
La anotación del Índice JPA solo se puede usar como parte de otra anotación como @Table
, @SecondaryTable
, etc. (consulte la sección Vea también en el javadoc ):
@Table(indexes = { @Index(...) })
Si usa Eclipselink
, puede agregar esta importación a su clase:
import org.eclipse.persistence.annotations.Index;
A continuación, agregue su @Index
a su campo de esta manera:
public class FooClass {
@Index
int field1;
}
o
@Index(columnNames = {"field1", "field2"})
public class FooClass {
int field1;
int field2;
}