मेरे पास चार टेबल हैं, USER, संपर्क, CONACT_TYPE, और USER_CONTACT
USER_CONTACT सभी संपर्कों को संग्रहीत करता है कि एक उपयोगकर्ता डमी डेटा के साथ आबादी वाले टेबल निम्नानुसार हैं:
उपयोगकर्ता तालिका संपर्क CONTACT_TYPE मैं क्या करने की कोशिश कर रहा हूं एक ऐसी क्वेरी तैयार करता है जो एक सूची वापस करेगा जो केवल PHONE CONACT_TYPE में ही है मेरा हाइबरनेट फ़ंक्शन अभी तक है contact.java प्रत्येक तालिका को एक मॉडल वर्ग से मैप किया जाता है। P> में संपर्क करें। Java वर्ग UserContact.java में contact.java वर्ग के लिए एक @ManyToOne संबंध और User.java वर्ग पर एक @ManyToOne शामिल है सभी वर्गों ऊपर तालिकाओं के सभी स्तंभ विशेषताओं के लिए मानक प्राप्तकर्ताओं और सेटर्स भी। मैं एक त्रुटि प्राप्त कर रहा हूं यह बताते हुए कि यह मेरे यूजर कॉन्क्टक्ट क्लास के सम्पत्ति contact.contactType को हल नहीं कर सकता है। किसी को भी पता है कि इस तरह कुछ ठीक तरह से निष्पादित कैसे सीतनिद्रा में होना चाहिए? मुझे यह पता चल गया, मुझे पता नहीं था एक बनाओ अलियास फंक्शन समाधान नीचे है अगर कोई सोच रहा है <पूर्व>
USER_ID (int) | FIRST_NAME (varchar (2) | LAST_NAME (varchar (2) | ------------------------------------ ------------------------ | 1 | परीक्षा | उपयोगकर्ता | ------------------- ----------------------------------------- < P> USER_CONTACT
USER_CONTACT_ID (int) | USER_ID (int) | CONTACT_ID (int) | --------------- ---------------------------------------- | 1 | 1 | 1 | | 2 | 1 | 2 | | 3 | 1 | 3 | --------------------------------------- ----------------
CONTACT_ID (इंट) | CONTACT_TYPE_ID (इंट) | संपर्क करें (varchar (2) | -------------------------------------- ----------------------- | 1 | 2 | (555) 555-5555 | 2 | 2 | (555) 593-3938 | 3 | 1 | test@oracle.com | ------------------------------------------ -------------------
CONTACT_TYPE_ID ( Int) | CONTACT_TYPE | ------------------------------------- | 1 | EMAIL | | 2 | फोन | -------------------------------------
सार्वजनिक सूची & lt; UserContact & gt; GetUserContactByType (पूर्णांक प्रयोक्ता आईडी, स्ट्रिंग संपर्क प्रकार) {सत्र सत्र = मिलना सत्र। ()। OpenSession (); {मानदंड मानदंड = सत्र। प्रयास करेंगणना (प्रयोक्तासंसाधनचित्र, "USER_CONACT") का प्रयास करें; Criteria.add (प्रतिबंधों। Eq ("USER_CONACT.userId, userId"); मापदंड। प्रतिबंध (प्रतिबंधों। Eq ("USER_CONTAct.contact.contactType.contactType", संपर्क प्रकार); वापसी (सूची & amp; lt; UserContact & gt;) मापदंड.सूची ()
@ManyToOne (वैकल्पिक = झूठी, fetch = FetchType.EAGER) के साथ एक बहुत सारे संबंध हैं। निजी संपर्क प्रकार संपर्क प्रकार;
@ManyToOne (वैकल्पिक = गलत, लाने = FetchType.LAZY) निजी संपर्क संपर्क; @ManyToOne (वैकल्पिक = गलत, fetch = FetchType.LAZY) निजी उपयोगकर्ता उपयोगकर्ता;
सार्वजनिक सूची & lt; UserContact & gt; GetUserContactByType (पूर्णांक प्रयोक्ता आईडी, स्ट्रिंग संपर्क प्रकार) {सत्र सत्र = मिलना सत्र। ()। OpenSession (); {मानदंड मानदंड = सत्र। प्रयास करेंगणना (प्रयोक्तासंसाधनचित्र, "USER_CONACT") का प्रयास करें; मापदंड। Add (प्रतिबंधों। Eq ("USER_CONACT.userId, userId"); मानदंड। सिक्रेटअलिअस ("USER_CONACT.contact", "c"); मापदंड। प्रतिबंध (प्रतिबंध। Eq ("c.contactType.contactType", संपर्क प्रकार) ; वापसी (सूची & lt; UserContact & gt;) मापदंड.सूची ();}}
Comments
Post a Comment