मेरे पास एक इकाई वर्ग के दो क्षेत्र हैं जो मैं अद्वितीय नहीं होना चाहता हूं बल्कि इसके बजाय एक कुंजी के लिए समग्र फ़ील्ड के रूप में उपयोग किया जाना चाहिए जो स्वयं अद्वितीय होना चाहिए। उदाहरण के लिए मेरे पास दो फ़ील्ड (नाम और संस्करण) हैं जो अन्य रिकॉर्ड के लिए समान हो सकते हैं लेकिन एक साथ वे अद्वितीय होना चाहिए। हाइबरनेट (एनोटेशन के साथ) का उपयोग करके ऐसा करने का सबसे अच्छा तरीका क्या है? मैं अन्य क्षेत्रों के लिए हाइबरनेट वैलिडेटर का उपयोग कर रहा हूं, लेकिन मुझे यह सुनिश्चित करने का कोई तरीका नहीं है कि उन दोनों फ़ील्ड को एक साथ अनूठी कुंजी लिखने के लिए मान्य किया जाए। मैं एक सामान्य इकाई वर्ग का उपयोग कर रहा हूं जिसमें एक आईडी जेनेरिक प्रकार है जिसे एक समग्र कुंजी वर्ग के लिए बदला जा सकता है लेकिन मुझे अभी तक बहुत अच्छी तरह से काम करने के लिए यह नहीं मिला है।हाइबरनेट के साथ दो क्षेत्रों के लिए एक अनूठी कुंजी कैसे प्राप्त करें?
@Table(name = "MYTABLE",
uniqueConstraints = { @UniqueConstraint(columnNames = { "NAME", "VERSION" }) })
यह एक अद्यतन पर डेटाबेस से लागू किया जाएगा या जारी रहती है:
क्या आप दो कॉलम पर "अनन्य बाधा" चाहते हैं, या तालिका पर "प्राथमिक कुंजी" जिसमें दो कॉलम होते हैं? –
मुझे दो कॉलम पर एक अनूठी बाधा चाहिए। उदाहरण के लिए नाम और संस्करण का संयोजन अद्वितीय होना चाहिए। इसलिए मेरे पास रिकॉर्ड # 1 (नाम = एबीसी/संस्करण = 1) के साथ तालिका में दो रिकॉर्ड हो सकते हैं और रिकॉर्ड # 2 (नाम = एबीसी/संस्करण = 2) के साथ, लेकिन रिकॉर्ड # 1 (नाम के साथ तालिका में दो रिकॉर्ड नहीं हैं = एबीसी/संस्करण = 1) और रिकॉर्ड # 2 (नाम = एबीसी/संस्करण = 1) के साथ। –