私はSlickの持ち上げられた埋め込みテーブルとマップされたテーブルに苦労しています。 APIは私には奇妙に思えるかもしれません。ちょうどそれが私にとって馴染みのない方法で構成されているからです。Slickのマップされたテーブルを外部キーで使用する方法は?
私はTask/Todo-Listを構築したいと思います。
- タスク:各タスクには、次のタスクへのオプションの参照があります。そうすれば、リンクされたリストが構築されます。その意図は、ユーザが優先順位でタスクを注文できることである。この順序は、タスクからタスクへの参照によって表されます。
TaskList:ラベルを持つTaskListと、リストの最初のタスクへの参照を表します。
case class Task(id: Option[Long], title: String, nextTask: Option[Task])
case class TaskList(label: String, firstTask: Option[Task])
今、私は、これら2つのエンティティのためのデータアクセスオブジェクト(DAO)を書き込もうとしました。
残念ながら、それはコンパイルされません。問題は両方のテーブルの投影nextTask
にそれぞれfirstTask
の*
投影です。
could not find implicit value for evidence parameter of type scala.slick.lifted.TypeMapper[scala.slick.lifted.ForeignKeyQuery[SlickTaskRepository.this.Tasks.type,justf0rfun.bookmark.model.Task]]
could not find implicit value for evidence parameter of type scala.slick.lifted.TypeMapper[scala.slick.lifted.ForeignKeyQuery[SlickTaskRepository.this.Tasks.type,justf0rfun.bookmark.model.Task]]
すぎて、私は次のようTypeMapperでそれを解決しようとしたが、それはコンパイルされません。
implicit val taskMapper = MappedTypeMapper.base[Option[Long], Option[Task]](
option => option match {
case Some(id) => task(id)
case _ => None
},
option => option match {
case Some(task) => task.id
case _ => None
})
could not find implicit value for parameter tm: scala.slick.lifted.TypeMapper[Option[justf0rfun.bookmark.model.Task]]
not enough arguments for method base: (implicit tm: scala.slick.lifted.TypeMapper[Option[justf0rfun.bookmark.model.Task]])scala.slick.lifted.BaseTypeMapper[Option[Long]]. Unspecified value parameter tm.
主な質問:どのようにスリックの引き上げ埋め込み、マッピングされたテーブルの正しい方法を使用するには?どのように私はこれを動作させるには?事前に
感謝。
こんにちはcvogt、Slick 2.0のこの制限はまだありますか?この状況をどのように分類すべきかについての参考資料がありますか?ありがとう! –
こんにちは。あなたの記事を公開しましたか? – n1r3
いいえ、それはまだ私のリストに載っていて、おそらく夏になるまでに起こるでしょう。私はSlickメーリングリストで発表します。 – cvogt