2014-06-12 9 views
7

खेलने ढांचे के anorm पुस्तकालय के संस्करण 2.3.0 के बाद से, विशेषता Pk बहिष्कृत हो गई है और वह अपने उपवर्गों Id और NotAssigned (documentation) के उपयोग का सुझाव देते हैं।anorm के पी के प्रतिवाद को संभालने के लिए कैसे

लेकिन अगर हमारे पास एक चर है जो Id या NotAssiged ले सकता है तो क्या होगा? विशेष रूप से, मेरे कोड में मेरे पास class Person(id: Pk[Long], name: String) है। Pk का उपयोग id के प्रकार के रूप में करते हुए, मैं Person(NotAssigned, "kostas") जैसे नए उपयोगकर्ता बना सकता हूं या अपने डीबी से मौजूदा प्राप्त कर सकता हूं।

बहिष्कृत Pk विशेषता का उपयोग न करने के लिए मैं अपना कोड कैसे माइग्रेट कर सकता हूं, लेकिन समान कार्यक्षमता को पकड़ सकता हूं?

उत्तर

7

Pk[A]Option[A] संरचना, जहां Id[A](value)Some[A](value) से मेल खाती है द्वारा के रूप में ही है, और NotAssignedNone से मेल खाती है।

तो अनुशंसित माइग्रेशन Option[Long] का उपयोग करना होगा, इसके बजाए। मैं वास्तव में Pk[A] को हटाने के डेवलपर्स के निर्णय को समझ नहीं पा रहा हूं, लेकिन Id[A] और NotAssigned नहीं, क्योंकि दोनों इसके बिना अनिवार्य रूप से बेकार हैं। फिर भी, Option आपके लिए समान कार्य करेगा, और छात्रावास इसे वही संभालता है।

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