我想知道在哪里可以找到这样的代码引发的异常:
def readFromDB: String = {
db_sqlite_xml.withSession {
implicit db: Session =>
xmlQuery.first.text
}
}
我在光滑的scaladoc(http://slick.typesafe.com/doc/2.0.1/api/#package)中找不到它;我在javadoc的tableQuery类中搜索了“first”方法,但没有任何成功。
感谢。
奥利弗
ps:这是我的答案,它正在发挥作用:
def readFromDB: String = {
db_sqlite_xml.withSession {
implicit db: Session =>
xmlQuery.firstOption.map(u=>u.text).getOrElse("")
}
}
}
感谢答案,它帮助了我。
答案 0 :(得分:1)
该方法属于来自scaladoc:
的UnitInvoker
特征
final def first()(implicit session: SessionDef): R
Execute the statement and return the first row of the result set.
If the result set is empty, a NoSuchElementException is thrown.
如果我可以给你一个建议,而不是尝试捕捉异常,你应该使用firstOption
:
final def firstOption()(implicit session: SessionDef): Option[R]
Execute the statement and return the first row of the result set wrapped in Some,
or None if the result set is empty.
通过这种方式,您可以对查询结果进行参数匹配,如下所示:
def readFromDB: String = {
db_sqlite_xml.withSession {
implicit db: Session =>
xmlQuery.firstOption match {
case Some(value) => value.text
case _ => // handle no result
}
}
}