man*_*ane 1 mysql scala slick-2.0
好吧,实际上我对类名有一些问题,这是我的问题
我有一个这样的案例类,
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)
}
Run Code Online (Sandbox Code Playgroud)
以及 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
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,案例类名==对象
object Foo {
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
这是旧代码,案例类和对象已在很多地方使用,因此我无法更改案例类或对象的名称,并且由于它们具有相同的名称,我在创建投影类时遇到问题,我在这一行收到错误:
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
Run Code Online (Sandbox Code Playgroud)
当我更改案例类名称并在投影类中使用它时,它可以正常工作,但我遇到了这个问题,因为案例类和对象具有相同的名称。这个问题有什么解决办法吗,可以在不改变案例类/对象名称的情况下解决吗?