Given a case class representation of a data row with a java.sql.Timestamp:
case class ExampleRow(id: String, ts: Timestamp)
And query expecting an ExampleRow:
import doobie._
import doobie.implicits._
import doobie.postgres.implicits._
val queryExampleRows =
sql"select * from example".query[ExampleRow].to[List]
There is a resulting compile error:
Cannot find or construct a Read instance for type:
ExampleRow
This is surprising given that the documentation claims that Timestamp should work. Further, I know that the Timestamp is the cause because removing that member results in the code compiling.
How can a case class contain a Timestamp and capable of being queried by doobie?
There is a similar question but I cannot figure out if it applicable to my question since it involves a type parameter T and not a concrete type like Timestamp.
Thank you in advance for your consideration and response.
Per the suggestion from the comments the problem was solved by transitioning the type from
java.sql.Timestamptojava.time.Instant.