Ну, у меня есть некоторые проблемы с именами классов, вот моя проблема
У меня есть такой класс случая,
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)
}
И класс Projection для 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
}
И, к сожалению, имя класса случая == объект
object Foo {
.
.
.
}
Это старый код, а класс case и объект использовались во многих местах, поэтому я не могу изменить имя класса case или объекта, и, поскольку они имеют одно и то же имя, у меня возникают проблемы с созданием класса проекции, Я получаю ошибки в этой строке:
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
И когда я меняю имя класса случая и использую его в классе проекции, он работает правильно, у меня возникает эта проблема, потому что класс случая и объект имеют одно и то же имя. Есть ли какое-то решение этой проблемы, можно ли ее решить без изменения имени класса/объекта??
(package.path.to.Foo.tupled, package.path.to.Foo.unapply)
- person Ende Neu   schedule 06.08.2014