@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
बेहतर डिफ़ॉल्ट के बारे में अधिक जानकारी के लिए , इस लेख को देखें ।