如何解决如何在ScalaQuery中将类对象作为结果而不是元组?
| 我已经在Scala和ScalaQuery中开始了我的第一个项目。到目前为止,尽管我偶尔会遇到一点困难,但两者看起来都不错并且很有希望。 有人可以向我解释如何获取一个类对象(在本例中为Domain案例类,具有约12列)而不是元组。 下面的查询返回元组,但问题是我需要表的9列(或所有列),而无需在查询产量中提供每个列的名称。 Domain类已经定义了所有列,然后为什么下面的查询返回元组而不是Domain对象,以便我可以使用Domain.name,Domain.level而不是确定返回的元组中的位置。val ext_id = \'ns1.amazon.com\'
val name = \"www.getcrazy.com\"
val validDomains = for {p <- Domain where { p => (p.ext_id is ext_id) && (p.domain_name is name) && (p.is_deleted is false) && (p.result_code is \"1000\")}} yield *
for(pp <- validDomains) {
logger.debug(\"State is \" + pp._6 + \" for domain ID - \" + pp._1)
}
有什么建议吗?
谢谢,
帕万
解决方法
创建一个扩展
org.scalaquery.ql.basic.BasicTable
的对象。例如,
case class Community (id:String,name:String,latitude:Double,longitude:Double)
object CommunityTable extends Table[Community](\"Communities\") {
def id = column[String](\"ID\",O PrimaryKey,O NotNull,O DBType \"uniqueidentifier\")
def name = column[String](\"Name\",O DBType \"varchar(255)\")
def longitude = column[Double](\"Longitude\")
def latitude = column[Double](\"Latitude\")
def * = id ~ name ~ longitude ~ latitude <> (Community,Community.unapply _)
}
这样,您可以简单地查询CommunityTable
并获得List[Community]
:
val c: List[Community] = CommunityTable.where(c => (c.name startsWith term)).list
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。