1

我正在尝试将 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 的映射之间以将文件存储在数据库中,我该怎么做?

谢谢!

4

1 回答 1

1

在尝试存储之前,您必须将文件实际读入与 blob 兼容的内容,java.io.File 只是一个描述符

来自 Slick 的文档 LOB 类型: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)
于 2014-06-06T01:09:36.957 回答