2011-11-23 22 views
38

पर एक समग्र अद्वितीय की कमी बनाना यह मेरा मॉडल है। इसलिए हम जॉन Grisham, जॉर्ज मार्टिन द्वारा बुक 1..5, आदि की पुस्तकें 1,2,3 होगा ...एकाधिक स्तंभों

वहाँ एक अद्वितीय बाधा मैं Book पर जगह कर सकते हैं है, इस बात की गारंटी हैं हम नहीं एक ही लेखक के साथ एक ही संख्या के साथ दो किताबें हैं? @Column(unique = true) के समान, लेकिन बाधा केवल Author X number के समग्र पर लागू होती है?

+0

संभावित डुप्लिकेट [जेपीए एनोटेशन के साथ बहु-स्तंभ बाधा कैसे पेश करें?] (Http://stackoverflow.com/questions/2772470/how-to-introduce-multi-column-constraint-with-jpa-annotations) –

उत्तर

79

उपयोग @UniqueConstraint:

@Table(
    uniqueConstraints= 
     @UniqueConstraint(columnNames={"author_id", "number"}) 
) 
@Entity 
class Book extends Model { 
    @ManyToOne 
    @JoinColumn(name = "author_id") 
    User author; 
    int number; 
} 
+0

लेखक और संख्या @id जैसे एफके के बारे में क्या ?? –

+1

और एकाधिक समग्र अनन्य कॉनस्ट्रेन के लिए, सिंटैक्स @Table (अद्वितीय कॉनस्ट्रेंट्स = {@UniqueConstraint (columnNames = {"field1", \t \t "फ़ील्ड 2", "फ़ील्ड 3"}), @UniqueConstraint (columnNames = {"field4", " field5 "})}) ) – Manu

+0

इस अनूठी बाधा को जोड़कर, जब मैं एप्लिकेशन को तैनात करता हूं तो हाइबरनेट मेरी तालिका बनाने में सक्षम नहीं होता है। क्या आप कुछ मदद कर सकते हैं। – Adelin

3

जब मेज से पहले बनाई गई है, यह इसे हटाने के लिए आवश्यक है। अनन्य कुंजी मौजूदा तालिका में नहीं जोड़ा गया है।

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