@Column
जेपीए @Columnएनोटेशन बुनियादी इकाई विशेषताओं के लिए है, की तरह String, Integer,Date ।
इसलिए, यदि इकाई विशेषता नाम अंतर्निहित स्तंभ नाम से भिन्न है, तो आपको @Columnस्तंभ नाम को स्पष्ट रूप से निर्दिष्ट करने के लिए एनोटेशन का उपयोग करने की आवश्यकता है , जैसे:
@Column(name="created_on")
private LocalDate createdOn;
@JoinColumn
@JoinColumnएनोटेशन एक अनुकूलित करने के लिए प्रयोग किया जाता है विदेशी कुंजी स्तंभ नाम , और यह केवल एक इकाई संघ के साथ प्रयोग किया जा सकता है।
इसलिए, आपके मामले में, क्योंकि आप एक @ManyToOneएसोसिएशन का उपयोग कर रहे हैं , आपको उपयोग करने की आवश्यकता है @JoinColumn:
@ManyToOne(fetch=FetchTYpe.LAZY)
@JoinColumn(name="LicenseeFK")
private Licensee licensee;
ध्यान दें कि हमने fetchविशेषता को FetchType.LAZYइसलिए सेट किया है , क्योंकि डिफ़ॉल्ट रूप से FetchType.EAGERइसका उपयोग किया जाता है, और यह एक भयानक रणनीति है। अधिक FetchType.LAZYबेहतर डिफ़ॉल्ट के बारे में अधिक जानकारी के लिए , इस लेख को देखें ।