2012-08-27 12 views
5

मैंने Controller.groovy स्रोत कोड देखा, और ऐसा लगता है कि सीआरयूडी ऑपरेशंस लेनदेन (कम से कम स्पष्ट रूप से) नहीं हैं।क्या grails किसी भी तरह से लेनदेन मचान है?

यदि मैं सही हूं, तो इसका मतलब यह है कि गतिशील मचान का उत्पादन उत्पादन में नहीं किया जाना चाहिए? क्या इसे लेनदेन करने का कोई तरीका है (यानी मैं Controller.groovy या जो कुछ भी संशोधित कर सकता हूं?)?

उत्तर

3

आप सही हैं, मचान लेनदेन नहीं है। ऐसा इसलिए हो सकता है क्योंकि grails और हाइबरनेट समर्थन डेटा स्रोत जो लेन-देन का समर्थन नहीं करते हैं, जैसे MySQL के MyISAM इंजन।

आप इस प्रकार व्यवहार होने के लिए इसे बदल सकते हैं:

  1. रन grails install-templates
  2. संपादित src/templates/scaffolding/Controller.groovy

Grails generate-controller के लिए इस टेम्पलेट का उपयोग करेगा या जब भी यह गतिशील रूप से एक मचान नियंत्रक उत्पन्न करता है।

+1

हालांकि यह तकनीकी रूप से सही है, नियंत्रक में लेनदेन का काम करना वास्तव में सबसे अच्छा अभ्यास नहीं है। सभी लेनदेन कार्यों को एक सेवा में किया जाना चाहिए। हल्के से मचान का प्रयोग करें। उत्पादन में मचान कोड डालें मत। – Gregg

+1

मैं इस बात से असहमत हूं कि मस्तिष्क के बारे में कुछ भी स्वाभाविक रूप से खराब है या उत्पादन तैयार नहीं है। मचान का उपयोग करके (मैं बाहर के बॉक्स को नहीं मान रहा हूं, बल्कि कुछ संशोधनों को बनाया गया है)। मचान आपको एक बड़ी रखरखाव जीत देता है और, यदि कुछ भी हो, तो आप अपने नियंत्रकों को पतला रखने के लिए _forces_। – cdeszaq

+0

सेवा परत में लेनदेन एक सर्वोत्तम अभ्यास है, लेकिन मैं सीआरयूडी संचालन को पूरी तरह लेनदेन के लिए सेवा में नहीं ले जाऊंगा। इसके अलावा, मचान उदाहरण के लिए एक सरल सीआरयूडी इंटरफेस प्रदान करने का एक शक्तिशाली तरीका है। कम से कम कोड और प्रयास के साथ प्रशासन, और अनुप्रयोगों की एक विस्तृत श्रृंखला के लिए उपयुक्त है। – ataylor

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