gpt4 book ai didi

mysql - 当案例类和对象名称相同时,slick 2 的 Scala 问题

转载 作者:行者123 更新时间:2023-11-29 04:42:41 25 4
gpt4 key购买 nike

实际上我有一些关于类名的问题,这是我的问题

我有一个这样的案例类,

case class Foo(
val compositeKey: String, // clientId-now-requestId
val requestPath: String,
val requestStatus: String) {

def this() = this("", "", "")
def someData = this.compositeKey.split("-")(0)
def someData2 = this.compositeKey.split("-")(2)
}

还有 Slick 的投影类,

class Foos(tag: Tag) extends Table[Foo](tag, "Foo") {

def compositeKey: Column[String] = column[String]("composite_key", O.PrimaryKey)
def requestPath: Column[String] = column[String]("request_path")
def requestStatus: Column[String] = column[String]("request_status")
def * : ProvenShape[ClientApiLog] = (compositeKey, requestPath, requestStatus) <> (Foo.tupled, Foo.unapply) //Error is thrown in this line
}

不幸的是,case class name == object

object Foo {
.
.
.
}

这是一个旧代码,案例类和对象已在很多地方使用,所以我无法更改案例类或对象的名称,并且由于它们具有相同的名称,所以我在创建投影类,我在这一行中遇到错误:

def * : ProvenShape[Foo] = (compositeKey, requestPath, requestStatus) <> (Foo.tupled, Foo.unapply)

- Implicit conversions found: (compositeKey, requestPath, requestStatus) => anyToToShapedValue((compositeKey, requestPath,
requestStatus))
- value tupled is not a member of object models.Foo
- implements scala.slick.lifted.AbstractTable.$times

当我更改案例类名称并在投影类中使用它时它正常工作,我遇到了这个问题,因为案例类和对象具有相同的名称。这个问题有什么解决办法吗,不改case类/对象名就可以解决吗??

最佳答案

你可以这样试试

(Foo.apply _).tupled

关于mysql - 当案例类和对象名称相同时,slick 2 的 Scala 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25158212/

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