2013-02-28 6 views
5

उदाहरण के लिए जेपीए मानदंड एपीआई जेनरेट किए गए मेटामोडेल के बिना इस्तेमाल किया जा सकता है। टाइप सुरक्षा खो जाती है, लेकिन मैं रनटाइम पर केवल प्रतिबिंब का उपयोग कर डेटा मॉडल के पूर्व ज्ञान के बिना क्वेरी बना सकता हूं। मैं उसी तरह Querydsl का उपयोग करना चाहता हूं। मुझे टाइप सुरक्षा की परवाह नहीं है क्योंकि मुझे डेटा मॉडल को वैसे भी नहीं पता है।क्या उत्पन्न क्वेरी प्रकारों के बिना Querydsl का उपयोग करना संभव है?

मेरी हाल की परियोजना पर मैं मुख्य रूप से Querydsl का उपयोग करना चाहता हूं क्योंकि यह दृढ़ता पर एक और परत का गठन करता है। तो मैं उम्मीद कर सकता हूं कि जेपीए, जेडीओ, जेडीबीसी, लुसेन, हाइबरनेट सर्च, मोंगोडीबी, कलेक्शन और आरडीएफबीन पर समान प्रश्नों का उपयोग करें।

या Querydsl के लिए कोई विकल्प है जिसे वर्णित तरीके से उपयोग किया जा सकता है?

चूंकि नोएसक्यूएल डीबी वृद्धि पर हैं। क्या कोई अन्य ढांचा है जो विभिन्न दृढ़ता प्रदाताओं पर समान सार परत बनाता है?

उत्तर

5

जेनरेट किए गए मेटामोडेल के बिना क्वेरीज़ल का उपयोग करने के दो तरीके हैं।

पहला तरीका अपने भाव मैन्युअल http://www.querydsl.com/static/querydsl/2.9.0/reference/html/ch03.html#d0e1379

निर्माण करने के लिए है और दूसरा Querydsl की उर्फ ​​कार्यक्षमता का उपयोग करने http://www.querydsl.com/static/querydsl/2.9.0/reference/html/ch02s07.html

Querydsl प्रश्नों आम इंटरफेस को साझा करने और एक जैसे दिखते है, लेकिन आप कर सकते हैं ' अलग-अलग दृढ़ता प्रकारों पर सीधे एक ही प्रश्न का उपयोग नहीं करते हैं, क्योंकि Querydsl मॉड्यूल में कोई क्वेरी अबास्ट्रक्शन प्रदान नहीं करता है।

प्रश्नों के व्यक्तिगत भागों को साझा या अनुमानित किया जा सकता है, लेकिन प्रश्न एक निश्चित मॉड्यूल से बंधे हैं।

आप जो भी कर सकते हैं वह सामान्य दृढ़ता अबास्ट्रक्शन जेपीए या जेडीओ में से एक है, और उनके माध्यम से आरडीबीएमएस, ओओडीबी और नोएसक्यूएल इंजन का उपयोग करना है।

+0

यह एक दयालु बात है कि Querydsl मॉड्यूल पर इस तरह के एक अमूर्तता प्रदान नहीं करता है। यह बहुत फायदेमंद होगा और क्वार्ड्सडल को "जावा पारिस्थितिकी तंत्र में LINQ विकल्प" पर धक्का दे सकता है। क्या कोई विशेष कारण है कि Querydsl ऐसी कार्यक्षमता प्रदान नहीं करता है? मॉड्यूल में क्वेरी क्यों भिन्न होती है? –

+0

क्या LINQ भी इसे प्रदान करता है? –

+1

Querydsl का उद्देश्य किसी भी दृढ़ता को अवशोषित करने का लक्ष्य नहीं है, यही मुख्य कारण है, मुख्य लक्ष्य दृढ़ता प्रश्नों के लिए टाइपएफ़ लगातार वाक्यविन्यास प्रदान करना है। –

संबंधित मुद्दे