Преобразование java.io.File в java.sql.Blob в Scala

Я пытаюсь преобразовать файл java.io.File в файл java.sql.Blob. Точнее, у меня есть модель в Scala Play, которая должна хранить файл в базе данных, вот что у меня есть до сих пор.

    case class Complication(complicationId: Long,
    vitalSignId: Long,
    complication: String, definition: String, reason: String,
    treatment: String, treatmentImage: Option[java.io.File], notes: String,
    weblinks: String, upperlower: String)

  object ComplicationDAO extends Table[Complication]("complications") with GasGuruDatabase {

    def complicationId = column[Long]("complication_id", O.PrimaryKey, O.AutoInc)
    def vitalSignId = column[Long]("vital_sign_id")
    def complication = column[String]("complication")
    def definition = column[String]("definition", O.DBType("varchar(4000)"))
    def reason = column[String]("reason", O.DBType("varchar(4000)"))
    def treatment = column[String]("treatment", O.DBType("varchar(4000)"))
    def treatmentImage = column[Option[Blob]]("treatment_image")
    def notes = column[String]("notes", O.DBType("varchar(4000)"))
    def weblinks = column[String]("weblinks")
    def upperlower = column[String]("upperlower")
    def * = complicationId ~ vitalSignId ~ complication ~ definition ~ reason ~ treatment ~ treatmentImage ~ notes ~ weblinks ~ upperlower <> (Complication, Complication.unapply _)

Ошибка происходит между отображением из java.io.File в Blob для хранения файла внутри базы данных, как я могу это сделать?

Спасибо!

1 ответ

Вы должны на самом деле прочитать файл во что-то совместимое с BLOB, прежде чем пытаться сохранить его, java.io.File это просто дескриптор

Из документации Slick типы объектов больших объектов: java.sql.Blob, java.sql.Clob, Array[Byte]

case class Complication(complicationId: Long,
vitalSignId: Long,
complication: String, definition: String, reason: String,
treatment: String, treatmentImage: **Option[Array[Byte]]**, notes: String,
weblinks: String, upperlower: String)
Другие вопросы по тегам