Scala/Slick-用于映射Slick表的case类的JSON编写器

Scala/Slick-用于映射Slick表的case类的JSON编写器,scala,playframework,slick,Scala,Playframework,Slick,我有一个case类,我在扩展Table类时使用它 case class Foo ( .. ) class FooTable(tag: Tag) extends Table[Foo](tag, "foo") { .. override def * = (...) <> (Foo.tupled, Foo.unapply) } 上面的代码将导致一个与表定义中的星形投影冲突的错误——类似于“value tuple不是object models.Foo的成员”。因此,我最终创建

我有一个case类,我在扩展Table类时使用它

case class Foo (
  ..
)

class FooTable(tag: Tag) extends Table[Foo](tag, "foo") {
  ..
  override def * = (...) <> (Foo.tupled, Foo.unapply)
}
上面的代码将导致一个与表定义中的星形投影冲突的错误——类似于“value tuple不是object models.Foo的成员”。因此,我最终创建了一个新的case类foodicate,并最终复制了Foo的所有成员,并将其用于JSON编码/解码。据我所知,case类没有继承


在上述场景中,是否有方法避免重复case类的成员?我相信在另一个case类中包含一个case类也不会有帮助,因为出于同样的原因,我无法为包含的case类定义JSON编写器。

如果我正确理解了这个问题,我也会遇到类似的问题。我修正了:

def * = (...) <>((Foo.apply _).tupled, Foo.unapply)
def*=(…)((Foo.apply 41;).tuple,Foo.unapply)

它不漂亮,但很管用。当时我在谷歌上搜索以了解这个问题,但我记不起理由了。但与伴生对象及其自动创建的东西有关。

正是我所需要的。。非常感谢
def * = (...) <>((Foo.apply _).tupled, Foo.unapply)