java - How to create an index with JPA/hibernate and use fields from mappedsupperclass together with fields from concrete entity -
मेरे पास और एक ठोस अब मुझे स्तंभ अगर मैं मैंने कोशिश की कोई भी विचार? टीआईए! यदि आप कृपया ध्यान दें कि दस्तावेज के रूप में कहा गया है कि यह केवल तभी उपयोग किया जाता है अगर तालिका उत्पादन प्रभावी हो। कोई भी अतिरिक्त अनुक्रमणिका नहीं है। यदि आप जेपीए 2.1 का उपयोग न करें, आप पुराने @MappedSupperClass है (सरलीकृत उदाहरण):
@मैपस्परक्लास सार्वजनिक अमूर्त वर्ग MySuperClass {@Id @GeneratedValue निजी लंबे आईडी; @ कॉलम (नाले = झूठे) निजी दिनांक निर्माण तिथि; // ...}
इकाई (सरलीकृत उदाहरण): <पूर्व>
@ एंटीटी सार्वजनिक वर्ग MyEntity MySuperClass फैली {@ इंडेक्स (नाम = "IDX_MYINDEX") @ कॉलम (नाले = झूठे) @ नामित (एन्म्युटि.पैरिंग) निजी मायटाइप प्रकार; @ इंडेक्स (नाम = "IDX_MYINDEX") @ कॉलम (नाले = झूठे) @ नामांकित (EnumType.STRING) निजी MyResult स्थिति; // ...}
MySuperClass.creationDate ,
MyEntity.status और
सहित एक अनुक्रमणिका की आवश्यकता है MyEntity.type ।
@ इंडेक्स (नाम = "आईडीएक्सएमएआईएंडएक्सएक्स") को
MySuperClass.creationDate जोड़तो तो हाइबरनेट
creationDate
MySuperClass से विरासत में मिली हर इकाई के लिए।
@AttributeOverride लेकिन यह अनुक्रमणिका के लिए सक्षम नहीं है।
JPA 2.1 का उपयोग कर रहे हैं तो आप वर्ग एनोटेशन का उपयोग कर सकते हैं
@ attribute indexes
@table (indexes = {@Index (name = "IDX_MYIDX1", columnList = "id, name, surname")}}
स्तंभ सूची , जैसा कि ऊपर दिखाया गया है, कॉलम नाम सूची को अल्पविराम-सीमांकित सूची के रूप में स्वीकार करता है।
हाइबरनेट s
@ इंडेक्स एनोटेशन (ध्यान दें कि यह पहले से ही नापसंद किया गया है) का उपयोग कर सकते हैं। इसमें
columnNames विशेषता है, जहां आप स्तंभ नामों की सरणी को पार कर सकते हैं, इससे कोई फर्क नहीं पड़ता कि किस फ़ील्ड को यह घोषित किया जाता है।
@ इंडेक्स (name = "IDX_MYIDX1", columnNames = {" आईडी "," नाम "," उपनाम "})
Comments
Post a Comment