我正在使用带有postgreSQL和光滑的Play Evaluation
这是型号:
case class Employee(id: Int,first:String,last:String,title:String,pic: Option[Blob])
class Employees(tag:Tag) extends Table[Employee](tag,"EMPLOYEES"){
def id = column[Int]("ID",O.PrimaryKey, O.NotNull)
def first = column[String]("LAST", O.NotNull)
def last = column[String]("LAST", O.NotNull)
def title = column[String]("TITLE")
def pic = column[Blob]("PICTURE",O.Nullable)
override def * = (id,first,last,title,pic.?)<> (Employee.tupled,Employee.unapply)
}
但我得到了这个
错误:类型"lo"不存在
创建的sql显示:
create table "EMPLOYEES" ("ID" INTEGER NOT NULL PRIMARY KEY,"LAST" VARCHAR(254) NOT NULL,"TITLE" VARCHAR(254) NOT NULL,"PICTURE" lo);
这种"lo"型是从哪里来的?我该如何修复它?
您能在类Employees中放入下面两个隐式方法并尝试吗?
private implicit def blob2Bytes(blob: java.sql.Blob): Array[Byte] = {
if (blob.length == 0)
return Array[Byte]()
val r = blob.getBytes(1, blob.length.toInt)
blob.free
r
}
private implicit def bytes2Blob(bytes: Array[Byte]) = {
new SerialBlob(bytes)
}