gpt4 book ai didi

scala - 光滑过滤器的正确使用方法

转载 作者:行者123 更新时间:2023-12-02 00:37:01 25 4
gpt4 key购买 nike

我正在使用 slick 来访问数据库。我想这样查询:

case class Coupon(couponId: Long, shopId: String)

class Coupons(tag: Tag) extends Table[Coupon](tag, "coupons"){

def couponId = column[Long]("coupon_id")

def shopId = column[String]("shop_id")

override def * = (couponId, shopId) <> (Coupon.tupled, Coupon.unapply)
}

object Coupons extends TableQuery(new Coupons(_)){

def findCouponBy(couponId: Long, shopId: Option[String]) = {

val s = DB.createSession()
try {
val q = for {
coupon <- this.filter(c => c.couponId === couponId &&
shopId.map(s => c.shopId === s).getOrElse(true)
} yield coupon
s.database.run(q.result)
} finally s.close
}
}

我认为这可能有用。然而,编译器告诉我错误:(126,-1) Play 2 编译器: 类型不匹配; 发现:任何 必需:slick.lifted.Rep[?]

问题出在这里: shopId.map(s => c.shopId === s).getOrElse(true)

我想知道如何才能完成这项工作。

我使用的是 slick 3.0.0-RC

最佳答案

使用slick.lifted.LiteralColumn(true)

Scala 的类型推断限制

关于scala - 光滑过滤器的正确使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30090872/

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