HowTo: कस्टम फील्ड लिफ्ट-रिकॉर्ड-स्क्वीरील में


92

मैं एक बनाने के लिए कोशिश कर रहा हूँ EnumListFieldलिफ्ट / रिकॉर्ड / Squeryl, के समान MappedEnumListमें LiftMapper। भंडारण प्रकार लंबा / बड़ा होना चाहिए। मैं समझता हूं कि यदि मैं परिभाषित करता हूं:

def classOfPersistentField = classOf[Long]

तब स्क्वीरल को पता चलेगा कि उसे एक BIGINT कॉलम बनाना चाहिए। और मुझे पता है कि यह setFromAny()मान सेट करने के लिए उपयोग करता है, लोंग में गुजर रहा है। एक टुकड़ा मुझे नहीं मिलता है:

यह क्षेत्र के मूल्य को कैसे पढ़ेगा? यदि यह उपयोग करता है valueBox, तो इसे एक मिलेगा Seq[Enum#Value], और यह नहीं पता होगा कि इसे एक लंबे समय में कैसे बदलना है।

मैं स्क्वीरल को अपने लॉन्ग में बदलने Seq[Enum#Value]या " लॉन्टर " को परिभाषित करने के लिए कैसे कहूं जो लॉन्ग लौटाता है, और यह "सामान्य" गेट्टर (एस) के साथ संघर्ष नहीं करता है?


1
यह लिंक मदद कर सकता है: stackoverflow.com/questions/12175645/squeryl-custom-field-types
मंदार पंडित

यह संभव नहीं है, आपको इसे श्रृंखला के अन्य तरीके से आज़माना होगा जो आपकी आवश्यकता के अनुरूप सिमिलर की तरह हैं। इसके लिए आप MSDN की मदद ले सकते हैं।
सुनील मुरारका

जवाबों:


1

आप अपने सत्यापन तर्क को गलत तरीके से लागू कर रहे हैं। रिकॉर्ड फ़ील्ड को मान्य करने का सही तरीका ओवरराइड करना है

def validations: List[ValidationFunction]

जहां ValidationFunction एक प्रकार का उपनाम है

type ValidationFunction = ValueType => List[FieldError]

और आपके मामले में ValueType == स्ट्रिंग।

अगला मुद्दा आपकी डोमेन विशेषता है। क्योंकि आपके कॉल को मान्य करने के लिए वर्ग परिभाषा में इनबिल्ट किया गया है, यह तब कहा जाएगा जब आपका फ़ील्ड बनाया जाएगा।


मैंने 5 वर्षों से Scala, और इसलिए Lift / Record / Squeryl का उपयोग नहीं किया है। मैं इसके बारे में सब भूल गया हूं, और इसलिए मैं यह तय करने के लिए योग्य नहीं हूं कि आपका उत्तर सही है और समस्या हल करता है। मुझे यकीन नहीं है कि इस मामले में स्टैक-ओवरफ्लो "प्रक्रिया" क्या होनी चाहिए। मैं "मेटा" में पूछूंगा ...
सेबेस्टियन डायट

"मेटा" ने कहा "प्रतीक्षा करें और देखें"; यदि आपके उत्तर को +1 का गुच्छा मिलता है, तो यह "शायद सही है", और मैं इसे स्वीकार कर सकता हूं ...
सेबेस्टियन डायट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.