私はケースクラスを持っており、これをテーブルクラスの拡張に使用します。Scala/Slick - 滑らかなテーブルをマップするために使用されるケースクラスのJSONライター
case class Foo (
..
)
class FooTable(tag: Tag) extends Table[Foo](tag, "foo") {
..
override def * = (...) <> (Foo.tupled, Foo.unapply)
}
すべての作品が見つかりました。今私はこのケースクラス用のJSONライターも定義したいと思います。テーブル定義のスター投影と競合するとエラーになります上記のコード
object Foo {
implicit val fooWrites: Writes[Foo] = (
...
)(unlift(Foo.unapply))
}
- のようなものは、「tupled値は、オブジェクトmodels.Fooのメンバーではありません」。だから私は新しいケースクラスFooDuplicateを作成し、Fooのすべてのメンバーを複製し、JSONのエンコーディング/デコードに使用しました。私が理解するように、ケースクラスには継承はありません。
上記のシナリオでは、ケースクラスのメンバーを複製しないようにする方法はありますか?同じ理由で、含まれているケースクラスのJSONライターを定義することができないため、他のケースクラスを含むクラスも含まれていると思います。
正確に私が必要としたもの..ありがとう – srvy