2013-07-12 8 views
24

javax.persistence से @Index एनोटेशन का उपयोग करने का प्रयास करते समय, ग्रहण मुझे यह त्रुटि देता है।इस स्थान के लिए एनोटेशन @ इंडेक्स को अस्वीकार कर दिया गया है

मैं इसे फ़ील्ड से पहले @Entity के साथ एनोटेटेड कक्षा के अंदर उपयोग कर रहा हूं।

इससे पहले, मैं ठीक उसी स्थान पर org.hibernate.annotations.Index का उपयोग कर रहा था और यह ठीक था।

समस्या के बाद मैं 4.0.1करने से 4.3.0.Beta3 और हाइबरनेट-कॉमन्स-एनोटेशन रों को 4.1.9.Final से हाइबरनेट कोर अपग्रेड कर दिया है शुरू कर दिया 4.0.2। यह कहता है कि @Index को बहिष्कृत किया गया है और javax.persistence एक की सिफारिश की गई है।

मुझे मिले सभी दस्तावेज़ और उदाहरण कक्षा सदस्यों से पहले @Index डाल दिया। मैं क्या खो रहा हूँ?

उत्तर

36

जेपीए सूचकांक एनोटेशन केवल @Table, @SecondaryTable, आदि जैसे एक और एनोटेशन के हिस्से के रूप में इस्तेमाल किया जा सकता है (देखें इसके अलावा 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

मुझे लगता है कि प्रश्न के बारे में जेपीए 2.1 @index एनोटेशन, नहीं एक मालिकाना एक है। – Piohen

संबंधित मुद्दे