मेरे कार्य प्रबंधन आवेदन में, उपयोगकर्ताओं के आधार पर कार्य फिल्टर करने के लिए सक्षम होना चाहिए: assignedTo
, priority
, status
और/या dueDate
एक नियंत्रक करने के लिए पारित किया जा रहा
मैं पर कैसे यकीन नहीं है एक गतिशील क्वेरी बनाने के लिए यह उपलब्ध पैरामीटर के आधार पर एक क्वेरी तैयार करेगा।
उदाहरण के लिए:
अगर मैं एक यूआरएल जैसे कि: task/index?assignedTo=1&status=2
मैं केवल इन दो मापदंडों के आधार पर एक प्रश्न बना सकते हैं। विधि मैं करने के लिए इस्तेमाल कर रहा हूँ
Task.findAllByAssignedToAndStatus(
User.get(params.assignedTo),
TaskStatus.get(params.status)
)
मैं स्पष्ट रूप से न हर संभव URL पैरामीटर संयोजन के लिए प्रत्येक findAllBy
क्वेरी बाहर लिख कर एक सूखी विधि को लागू करना चाहते हैं।
क्या Grails में ऐसा करने का कोई अच्छा तरीका है?
यह कुछ कर रही द्वारा खोजक नाम उत्पन्न करने के लिए तुच्छ है जैसे "ढूंढें सभी $ {params.collect {k, v -> k.capitalize()} .join ('और')}" ', लेकिन यह कैसे पता चलता है कि' असाइन किए गए 'को' उपयोगकर्ता 'उदाहरण लोड करना चाहिए और ' स्थिति' को 'टास्कस्टैटस' का संदर्भ देना चाहिए? –
सहमत हुए, मैं ऐसा नहीं करना चाहता हूं। यह एक शोध प्रबंध के लिए है, इसलिए मैं कोड को यथासंभव स्वच्छ होना चाहता हूं। –
क्या मैं एक नामित क्वेरी का सुझाव दे सकता हूं - http://grails.org/doc/2.2.1/ref/Domain%20Classes/namedQueries.html - तो आप उपयोगकर्ता और स्थिति द्वारा फ़िल्टर कर सकते हैं। मुझे लगता है कि वे चट्टान! – marko