我正在使用Doobie来管理数据库持久性。我在我的实体中使用值类Foo
字段,即
case class CreatedOn(value: LocalDateTime) extends AnyVal
case class Resource(value: String) extends AnyVal
case class Foo(id: Option[Int], resource: Resource, createdOn: CreatedOn)
implicit fooRead: Read[Foo] = Read[(Option[Int], String, LocalDateTime)].map {
case (oid, resource, createdOn) => Foo(oid, Resource(resource), CreatedOn(createdOn))
}
implicit fooWrite: Write[Foo] = Write[(Option[Int], String, LocalDateTime)].contramap {e => (e.oid, e.resource.value, e.createdOn.value}
然而编译器抱怨缺少Read[(Int, String, LocalDateTime)].map {...
关于如何解决这个问题的任何建议?首先,当涉及到实体时,使用值类是一个坏主意吗?谢谢