में कई मनमाने ढंग से कॉलम चुनना मैं एक दृश्य के खिलाफ SELECT *
-स्टाइल क्वेरी चलाने की कोशिश कर रहा हूं। आदर्श रूप में, मैं एक फ़ंक्शन के साथ समाप्त होता हूं जिसे आप Seq[String]
के रूप में कॉलम नामों का एक सेट पास कर सकते हैं और यह SELECT col1, col2, ... FROM view
क्वेरी निष्पादित करेगा। यदि यह व्यवहार्य नहीं है तो सभी कॉलम (SELECT * FROM view
) को वापस करने के लिए स्वीकार्य होगा।Slick
मुझे पता है कि मैं इस दृश्य के साथ-साथ एक साथ केस क्लास के लिए Table
कक्षा को परिभाषित करके ऐसा कर सकता हूं, लेकिन इनमें से कुछ विचारों में सैकड़ों कॉलम हैं (जिन्हें नेस्टेड टुपल्स की आवश्यकता होगी, बशर्ते कि 22 तत्व सीमा हो tuples), और ऐसे कई विचार हैं जिनके लिए मुझे यह करना होगा, इसलिए लिखने/उत्पन्न/बनाए रखने के लिए बहुत सारे कोड हैं। अगर मैं संभव हो तो उससे बचना चाहूंगा।
क्या यह स्लिम में करने योग्य है? या तो स्थिर कोड में कॉलम को परिभाषित किए बिना Table
कक्षा को परिभाषित करके (गतिशील कॉलम स्ट्रिंग सूची वाले कुछ वर्ग को प्रारंभ करने के लिए स्वीकार्य होगा), या केवल sql"""..."""
का उपयोग करके SQL क्वेरी उत्पन्न करके और किसी भी तरह से कॉलम के सेट को वापस करने के लिए .as[...]
प्राप्त करने के लिए मनमाना लंबाई की?
मुझे वास्तविक कॉलम प्रकारों के साथ कुछ भी विशेष करने की आवश्यकता नहीं है: डेटाबेस पक्ष पर हमें प्रकारों का मिश्रण मिला है, लेकिन यदि उन्हें सभी को स्लिम पक्ष पर टेक्स्ट कॉलम के रूप में माना जाता है मेरे लिए उत्तम है।
दिलचस्प सवाल, एक नोट के रूप में, कॉलम सीमा अब स्लिम के नए संस्करणों में हटा दी गई है। –
@ एंडीन्यू की टिप्पणी का पालन करने के लिए, http://slick.typesafe.com/doc/2.1.0/userdefined.html#using-custom-record-types-in-queries देखें। –