java - How to create an index with JPA/hibernate and use fields from mappedsupperclass together with fields from concrete entity -


मेरे पास @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")}}   

कृपया ध्यान दें कि दस्तावेज के रूप में कहा गया है कि

यह केवल तभी उपयोग किया जाता है अगर तालिका उत्पादन प्रभावी हो। कोई भी अतिरिक्त अनुक्रमणिका नहीं है।

स्तंभ सूची , जैसा कि ऊपर दिखाया गया है, कॉलम नाम सूची को अल्पविराम-सीमांकित सूची के रूप में स्वीकार करता है।

यदि आप जेपीए 2.1 का उपयोग न करें, आप पुराने हाइबरनेट s @ इंडेक्स एनोटेशन (ध्यान दें कि यह पहले से ही नापसंद किया गया है) का उपयोग कर सकते हैं। इसमें columnNames विशेषता है, जहां आप स्तंभ नामों की सरणी को पार कर सकते हैं, इससे कोई फर्क नहीं पड़ता कि किस फ़ील्ड को यह घोषित किया जाता है।

  @ इंडेक्स (name = "IDX_MYIDX1", columnNames = {" आईडी "," नाम "," उपनाम "})    

Comments

Popular posts from this blog

ios - Adding an SKSpriteNode to SKScene from a child SKSpriteNode -

Matlab transpose a table vector -

c# - Textbox not clickable but editable -