2011-01-20 4 views
24

मेरे पास एक प्रोजेक्ट है जहां मैं डेटाबेस में बाइंडिंग को संभालने के लिए NHibernate का उपयोग कर रहा हूं। जब तक प्रश्नों की बात आती है तब तक मैं ज्यादातर मूल बातें का उपयोग कर रहा हूं। अब मैं एक और कठिन सवाल के साथ संघर्ष कर रहा हूं, और मुझे एनएचबेर्नेट के नए हिस्से दिखाई देते हैं। विशेष रूप से मैं SetProjection के बारे में उत्सुक हूं, जो प्रश्न पूछते समय महत्वपूर्ण लगता है।एनएचबेरनेट में प्रक्षेपण क्या है?

प्रोजेक्शन क्या है, और मैं आमतौर पर इसका उपयोग कैसे करूं? मुझे लगता है कि जब डेटाबेस की बात आती है तो एक प्रक्षेपण एक सामान्य शब्द होता है, इसलिए आपको अधिक सामान्य उत्तर देने के लिए आपका स्वागत है ..

+0

http://en.wikipedia.org/wiki/Projection_(relational_algebra) –

उत्तर

29

एंटोइन के रूप में प्रक्षेपण ने कहा परिवर्तन है। क्वेरी के संदर्भ में यह है:

SELECT *PROJECTION* FROM Table 

*PROJECTION* डेटा परिवर्तन के लिए अभिव्यक्ति है।

उदाहरण:

SELECT * FROM ORDER 

मानदंड बराबर होगा:

List orders = session.createCriteria(Order.class).list(); 

यहाँ कोई प्रक्षेपण, हम डेटा परिवर्तन के बिना ले। अगर हम एक चाहते हैं:

SELECT NAME FROM PRODUCT 

यहां, प्रोजेक्शन क्लास खेल में आता है।

List products=session.createCriteria(Product.class) 
    .setProjection(Projection.property(\"name\")) 
    .list(); 

तो हम एक आइटम के लिए सभी पंक्तियों परियोजना: name क्षेत्र के ऊपर प्रश्न के रूप में एक मानदंड क्वेरी में फिर से लिखा जा सकता है। (COUNT(*) के लिए) कस्टम Projection.rowCount()

+0

पीछे downvote – Andrey

+0

धन्यवाद कारण सुनने के लिए खुशी होगी:

वहाँ अन्य अनुमानों कर रहे हैं! स्पष्ट। और हाँ - मैंने गुगलिंग से शुरुआत की, लेकिन मुझे वास्तव में जवाब नहीं मिला। btw; डाउनवोट मुझसे नहीं था। +1 – stiank81

+3

आपके उत्तर की पहली पंक्ति के लिए, मैं यहां google = के पहले परिणाम से आया हूं) –

6

मुझे एनएचबेर्नेट के बारे में पता नहीं है, लेकिन आम तौर पर, एक प्रक्षेपण एक परिवर्तन है एक और सेट में एक सेट। एसक्यूएल में, इसे एक चयन के रूप में व्यक्त किया जाता है।