@Index
のjavax.persistence
アノテーションを使用しようとすると、Eclipseでこのエラーが発生します。
Java.util.Date
アノテーションが付けられたクラス内の@Entity
フィールドの直前で使用しています。
以前はまったく同じ場所でorg.hibernate.annotations.Index
を使用していましたが、問題ありませんでした。
hibernate-coreを4.1.9.Finalから4.3.0.Betaおよびhibernateにアップグレードした後に問題が発生しました-commons-annotation s 4.0.1から4.0.2へ。 @Index
は非推奨であり、javax.persistence
を推奨しています。
私が見つけたすべてのドキュメントと例は、クラスメンバーの前に@Index
を置きます。何が欠けていますか?
JPAインデックスアノテーションは、@Table
、@SecondaryTable
などの別のアノテーションの一部としてのみ使用できます( javadoc の「関連項目」セクションを参照)。
@Table(indexes = { @Index(...) })
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;
}
ここを参照してください: 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)
......