with tutorial ejemplo anotaciones java jpa hibernate-annotations

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