slick のドキュメントでは、それjava.sql.Blob
はすぐにサポートされているタイプの 1 つであり、列を表すために使用しようとしていると言われていbytea
ます。しかし、次のコードではエラーが発生します。
import scala.slick.driver.PostgresDriver.simple._
import java.sql.{ Timestamp, Blob }
case class Test(id: Int, last_updated: Timestamp, data: Blob)
class Tests(tag: Tag) extends Table[Test](tag, "tests") {
def data = column[Blob]("data")
def last_updated = column[Timestamp]("last_updated")
def id = column[Int]("id", O.PrimaryKey)
def * = (id, last_updated, data)
}
エラーメッセージは次のとおりです。
Multiple markers at this line
- No matching Shape found. Slick does not know how to map the given types. Possible causes: T in Table[T] does not match your * projection. Or you use an unsupported
type in a Query (e.g. scala List). Required level: scala.slick.lifted.ShapeLevel.Flat Source type: (scala.slick.lifted.Column[Int], scala.slick.lifted.Column[java.sql.Timestamp],
scala.slick.lifted.Column[java.sql.Blob]) Unpacked type: utils.Test Packed type: Any
- implements scala.slick.lifted.AbstractTable.$times
- type mismatch; found : (scala.slick.lifted.Column[Int], scala.slick.lifted.Column[java.sql.Timestamp], scala.slick.lifted.Column[java.sql.Blob]) required:
scala.slick.lifted.ProvenShape[utils.Test]
- type mismatch; found : (scala.slick.lifted.Column[Int], scala.slick.lifted.Column[java.sql.Timestamp], scala.slick.lifted.Column[java.sql.Blob]) required:
scala.slick.lifted.ProvenShape[utils.Test]
何が起こっているのか、どうすればbytea
滑らかに正しく表現できますか?