找不到请求操作的Cassandra quill编解码器

找不到请求操作的Cassandra quill编解码器,cassandra,quill,quill.io,Cassandra,Quill,Quill.io,我遵循中给出的示例,但以下操作失败,请求的操作未找到编解码器:[varchar java.util.UUID]。如何使用羽毛笔提供自定义Cassandra编解码器 import java.util.UUID import javax.inject.Inject import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.{Await, Future} import io.getquill.{C

我遵循中给出的示例,但以下操作失败,请求的操作未找到编解码器:[varchar java.util.UUID]。如何使用羽毛笔提供自定义Cassandra编解码器

import java.util.UUID
import javax.inject.Inject
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.{Await, Future}
import io.getquill.{CassandraAsyncContext, LowerCase, MappedEncoding}
import scala.concurrent.duration._

object Main extends App {

  case class MyOrder(id: String, uuid: UUID)

  trait OrderRepository {
    implicit val encodeUUID: MappedEncoding[UUID, String] = MappedEncoding[UUID, String](_.toString)
    implicit val decodeUUID: MappedEncoding[String, UUID] = MappedEncoding[String, UUID](UUID.fromString)

    def list(): Future[Iterable[MyOrder]]
    def get(id: String): Future[Option[MyOrder]]
  }

  class OrderRepositoryImpl(db: CassandraAsyncContext[LowerCase]) extends OrderRepository {
    import db._

    override def list(): Future[Iterable[MyOrder]] = {
      run(quote(query[MyOrder]))
    }

    override def get(id: String): Future[Option[MyOrder]] = {
      val q = quote {
        (id: String) =>
          query[MyOrder].filter(_.id == id)
      }
      val res = run(q(lift(id.toString)))
      res.map(_.headOption)
    }
  }

  val db = new CassandraAsyncContext[LowerCase]("db")
  val repo = new OrderRepositoryImpl(db)
  val maybeOrder = Await.result(repo.get("id1"), 2 seconds)
  println(s"maybeOrder $maybeOrder")
}
和卡桑德拉ddl:

CREATE TABLE myorder ( 
id text, 
uuid text, 
PRIMARY KEY (id)
);

INSERT INTO myorder (
id,
uuid
) values (
'id1',
'a8a8a416-2436-4e18-82b3-d5881c8fec1a'
);
显然,我可以创建一个类,其
uuid
字段的类型为
String
,但这里的目标是找出如何使用自定义解码器