gpt4 book ai didi

scala - 如何在 ScalaQuery 中将类对象作为结果而不是元组?

转载 作者:行者123 更新时间:2023-12-03 20:50:39 24 4
gpt4 key购买 nike

我已经在 Scala 和 ScalaQuery 中开始了我的第一个项目。到目前为止,尽管我偶尔会遇到一些困难,但两者看起来都不错并且很有前途。

有人可以向我解释如何获取类对象(在本例中是具有大约 12 列的域案例类)而不是元组。下面的查询返回元组,但问题是我需要表的大约 9 列(或所有列),而无需在查询 yield 中提供每个列名。域类已经 * 定义了所有列,那么为什么下面的查询返回元组而不是域对象,这样我就可以使用 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)
}

有什么建议吗?

谢谢,帕万

最佳答案

创建一个 object that extends 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 NotNull, 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

关于scala - 如何在 ScalaQuery 中将类对象作为结果而不是元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6126000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com