आईडी द्वारा एक ही पंक्ति का चयन करना एक आसान काम होना चाहिए, फिर भी मुझे यह समझने में थोड़ा परेशानी हो रही है कि यह मेरी वस्तु को कैसे मैप करें।आईडी
मुझे this question मिला जो एक ही चीज़ की तलाश में है लेकिन उत्तर दिया गया मेरे लिए काम नहीं करता है।
वर्तमान में मेरे पास यह काम कर रहा है, लेकिन यह उतना ही सुरुचिपूर्ण प्रतीत नहीं होता जितना होना चाहिए।
def getSingle(id: Long):Option[Category] = withSession{implicit session =>
(for{cat <- Category if cat.id === id} yield cat).list.headOption
//remove the .list.headOption and the function will return a WrappingQuery
}
मैं तो headOption
लेने सूची प्राप्त करने लगता है सिर्फ भारी और अनावश्यक है। मेरा कुछ छूट रहा है।
यदि यह मदद करता है, यहाँ मेरी श्रेणी कोड
case class Category(
id: Long = 0L,
name: String
)
object Category extends Table[Category]("categories"){
def name = column[String]("name", O.NotNull)
def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
def * = id ~ name <> (Category.apply _, Category.unapply _)
...
}
अधिक है वहाँ एक आसान तरीका सिर्फ एक विकल्प [टी] एक आईडी स्लिक का उपयोग करने से प्राप्त करने के लिए है?
समाधान ड्राइवर चालक था। मैं .firstOption
का उपयोग नहीं कर सका लेकिन mysql jdbc 5.1.25 में अपग्रेड किया गया और सब ठीक है!
Category.filter{ _.id === id }.list.headOption
यह अधिक स्वच्छ दिखता है:
के पास SQL वाक्यविन्यास में एक एसक्यूएल त्रुटि 'त्रुटि मिलती है यदि मैं आपके द्वारा पोस्ट किए गए पहले समाधान का उपयोग करता हूं तो मुझे OPTION SQL_SELECT_LIMIT के पास' SQL वाक्यविन्यास में त्रुटि 'मिलती है = DEFAULT'' – kingdamian42
ड्राइवर समस्या हो सकती है। Http://stackoverflow.com/questions/15113707/error-code-1064-sql-state-42000-you-have-an-error-in-your-sql-syntax – Nilanjan
पर एक नज़र डालें "mysql" % "mysql-connector-java"% "5.1.25" '। महान काम करता है, धन्यवाद! – kingdamian42