2013-07-12 7 views
24

@Index注釈をjavax.persistenceから使用しようとすると、このエラーが表示されます。注釈@Indexはこの場所では許可されていません

私は@Entityと注釈を付けたクラスの内部で、右java.util.Dateフィールドの前にそれを使用しています。

以前は、同じ場所にorg.hibernate.annotations.Indexを使用していましたが、問題ありませんでした。

問題は、私はが休止状態-コアを4.1.9.Finalから4.3.0.Beta34.0.1から S-コモンズアノテーションを休止状態にアップグレードした後に開始しました4.0.2@Indexは推奨されておらず、javax.persistenceを推奨しています。

私が見つけたすべてのドキュメントと例は、クラスメンバーの前に@Indexと記載されています。私は何が欠けていますか? JPAインデックスの注釈がなど、別の注釈の一部のような@Table@SecondaryTableとしてのみ使用することができ

答えて

36

javadocで関連項目のセクションを参照してください):

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

あなたがEclipselinkを使用している場合は、これを追加することができますあなたのクラスへのインポート:

import org.eclipse.persistence.annotations.Index; 

次に、このようなあなたのフィールドにあなたの@Indexを追加

または

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

私は疑問を約JPA 2.1 @Index注釈ではなく、独自の一つだと思い。 – Piohen

関連する問題