में सहयोगी ऑब्जेक्ट के साथ एक केस क्लास के साथ मैप किए गए प्रोजेक्शन को स्लिक के साथ, मैं डेटाबेस तालिका प्रविष्टियों को सीधे उस केस क्लास में प्रोजेक्ट करने की कोशिश कर रहा हूं जो वे प्रतिनिधित्व करते हैं। example in the documentation के बाद, मैं एक मैप किए गए प्रक्षेपण <>
ऑपरेटर का उपयोग करके सेट:Slick
case class SomeEntity3(id: Int, entity1: Int, entity2: Int)
val SomeEntityTable = new Table[SomeEntity3]("some_entity_table") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def entity1 = column[Int]("entity1")
def entity2 = column[Int]("entity2")
def * = id ~ entity1 ~ entity2 <> (SomeEntity3, SomeEntity3.unapply _)
}
अब, मैं SomeEntity3 करने के लिए कुछ स्थिर स्थिरांक और सहायक तरीकों जोड़ना चाहते हैं। इसके लिए, मैं एक साथी वस्तु बनाते हैं। लेकिन जैसे ही मैंने लाइन
object SomeEntity3
एक सुंदर जंगली बहु लाइन त्रुटि *
की परिभाषा कुछ के बारे में "अतिभारित विधि मूल्य <> विकल्प के साथ" अस्पष्ट कह के लिए पॉप अप होता है शामिल हैं।
साथी ऑब्जेक्ट स्लिम में द्वि-दिशात्मक मैपिंग से कैसे संबंधित है और क्या मैं अपना लक्ष्य पूरा कर सकता हूं?
यह काम करता है वास्तव में:
पूर्ण विवरण देखें। स्पेलिंग क्यों स्पष्ट रूप से लागू होती है इस पर कोई स्पष्टीकरण की आवश्यकता है और समस्या को हल करता है? – notan3xit
स्पष्ट रूप से लागू विधि को एक फ़ंक्शन (ईटा विस्तार) में बदलना '(Int, Int, Int) => SomeEntity3' उत्पन्न करता है, यानी वह प्रकार जो साथी ऑब्जेक्ट को पहले स्थान पर होना चाहिए। अधिक आम तौर पर, एक फ़ंक्शन ऑब्जेक्ट को "नई" फ़ंक्शन ऑब्जेक्ट में लागू विधि को मूल कार्य के समान प्रकार उत्पन्न करता है। –
किसी कारण से स्केलैक भ्रमित हो जाता है जब आपके पास कोई साथी ऑब्जेक्ट होता है और ऑब्जेक्ट के आवेदन को लिफ्ट नहीं करता है। – pedrofurla