जवाबों:
@Basic
यह दर्शाता है कि एक विशेषता को बनाए रखना है और एक मानक मानचित्रण का उपयोग करना है। इसमें ऐसे पैरामीटर हैं जो आपको यह निर्दिष्ट करने की अनुमति देते हैं कि क्या विशेषता को आलसी लोड किया जाना है और क्या यह अशक्त है।
@Column
आपको उस डेटाबेस में कॉलम का नाम निर्दिष्ट करने की अनुमति देता है जिसमें विशेषता को बनाए रखना है।
यदि आप एक को दूसरे के बिना निर्दिष्ट करते हैं तो आपको डिफ़ॉल्ट व्यवहार मिलता है जो समझदार है, इसलिए आमतौर पर लोग विशेष मामलों के अपवाद के साथ केवल एक का उपयोग करते हैं।
इसलिए यदि हम एक विशेषता का एक आलसी लोडिंग चाहते थे और एक स्तंभ नाम निर्दिष्ट करने के लिए हम कह सकते हैं
@Basic(fetch=FetchType.LAZY)
@Column(name="WIBBLE")
यदि हम डिफ़ॉल्ट, गैर-आलसी व्यवहार को कम करते हैं तो बस @Column
पर्याप्त होता।
@ Djna के जवाब के अलावा , यह ध्यान देने योग्य है कि @Basic
इसकी तुलना की जानी चाहिए @OneToMany
, @ManyToOne
और @ManyToMany
। इनमें से किसी भी संपत्ति पर केवल एक निर्दिष्ट किया जा सकता है।
@Column
और @JoinColumn
डेटाबेस स्तंभ गुणों का वर्णन करने के लिए इनमें से किसी के साथ निर्दिष्ट किया जा सकता है।
ये एनोटेशन के दो सेट हैं जिन्हें एक साथ उपयोग किया जा सकता है, लेकिन प्रत्येक सेट के केवल एक एनोटेशन का उपयोग एक बार में किया जा सकता है।
यह ध्यान देने योग्य है कि बेसिक को आदिम क्षेत्रों के लिए डिज़ाइन किया गया है
http://en.wikibooks.org/wiki/Java_Persistence/Basic_Attributes
एक बुनियादी विशेषता वह है जहां विशेषता वर्ग एक सरल प्रकार है जैसे स्ट्रिंग, संख्या, दिनांक या एक आदिम। एक मूल विशेषता का मान डेटाबेस में सीधे स्तंभ मान पर मैप कर सकता है।
समर्थित प्रकार और रूपांतरण जेपीए कार्यान्वयन और डेटाबेस प्लेटफॉर्म पर निर्भर करते हैं। किसी प्रकार की मूलभूत विशेषता जो किसी डेटाबेस प्रकार से सीधे मैप नहीं होती है, उसे बाइनरी डेटाबेस प्रकार से क्रमबद्ध किया जा सकता है।
जेपीए में एक बुनियादी विशेषता को मैप करने का सबसे आसान तरीका कुछ भी नहीं है। ऐसी कोई भी विशेषताएँ जिनके पास कोई अन्य एनोटेशन नहीं है और अन्य संस्थाओं का संदर्भ नहीं है, को स्वचालित रूप से मूल के रूप में मैप किया जाएगा, और यहां तक कि यदि कोई मूल प्रकार नहीं है, तो धारावाहिक भी। विशेषता के लिए कॉलम नाम डिफ़ॉल्ट रूप से होगा, जिसे विशेषता नाम के साथ अपरकेस के रूप में नाम दिया गया है।
@Basic एनोटेशन JPA संस्थाओं पर लागू किया जाता है, और @ कॉलम को डेटाबेस कॉलम पर लागू किया जाता है @Basic एनोटेशन का वैकल्पिक गुण परिभाषित करता है कि इकाई फ़ील्ड शून्य हो सकती है या नहीं; दूसरी ओर,
@Basic
बिना उपयोग कर सकता है@Column
, यही कारण है कि दोनों में गुणoptional
औरnullable
गुण मौजूद हैं। क्या मैं सही हू?