2010-08-17 13 views
12

मैं यह सुनिश्चित करना चाहता हूं कि मेरी तालिका में सभी पंक्तियों में दो फ़ील्ड का अनूठा संयोजन हो, और मैं इसे अपनी इकाई वर्ग में एनोटेशन का उपयोग करके निर्दिष्ट करना चाहता हूं। मैंने @Table और @UniqueConstraint के संयोजन का उपयोग करने का प्रयास किया है, लेकिन स्पष्ट रूप से मैं इसे गलत कर रहा हूं, जिसमें मैं केवल यह निर्दिष्ट कर सकता हूं कि अलग-अलग कॉलम अद्वितीय होना चाहिए (मैं पहले ही निर्दिष्ट कर सकता हूं कि @ कॉलम की अनूठी संपत्ति का उपयोग करके) कॉलम के संयोजन से। उदाहरण के लिए, मुझे एक सारणी चाहिए जिसमें फ़ील्ड ए और बी में केवल पंक्तियां हों जिनमें ए और बी का अनूठा संयोजन हो। न तो फ़ील्ड/कॉलम अद्वितीय होना चाहिए, यह दोनों का संयोजन अद्वितीय होना चाहिए।कैसे निर्दिष्ट करें कि कॉलम का संयोजन एनोटेशन का उपयोग करके एक अद्वितीय बाधा होना चाहिए?

यहाँ है कि मैं क्या कोई खुशी के साथ अब तक की कोशिश की है:

@Table(name = "MY_TABLE", 
     uniqueConstraints = @UniqueConstraint(columnNames = 
              { "FIELD_A", "FIELD_B" })) 

और

@Table(name = "MY_TABLE", 
     uniqueConstraints = { @UniqueConstraint(columnNames = 
               { "FIELD_A", "FIELD_B" }) }) 

कोई व्यक्ति ऐसा करने के लिए सही रास्ता सुझाव है सकते हैं? इसके अलावा यदि हाइबरनेट-विशिष्ट एनोटेशन की बजाय जेपीए एनोटेशन का उपयोग करना संभव है जो बेहतर होगा।

आपकी मदद के लिए अग्रिम धन्यवाद।

--James

+2

[जेपीए में अद्वितीय बाधा जांच] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/1839186/unique-constraint-check-in-jpa) –

उत्तर

14

अपने दूसरे प्रयास

@Table(name = "MY_TABLE", 
    uniqueConstraints = { @UniqueConstraint(columnNames = 
              { "FIELD_A", "FIELD_B" }) }) 

अपेक्षा के अनुरूप काम करना चाहिए।

+0

धन्यवाद मदद के लिए बहुत कुछ। यह पता चला है कि मेरे डेटा सम्मिलन कार्यक्रम में मुझे एक और त्रुटि हुई जिसने मुझे विश्वास दिलाया कि यह मुद्दा था। अब मुझे दूसरी त्रुटि मिली है और यह अनूठी बाधा वास्तव में विज्ञापित के रूप में काम कर रही है। मैं वास्तव में आपकी सहायता की सराहना करता हूं! –

+0

यहां तक ​​कि पहले फॉर्म को भी काम करना चाहिए। –

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