在Slick 3.0.0中从Plain SQL Query中获取Blob或BYTEA

时间:2015-07-01 03:28:13

标签: scala jdbc slick

我正在尝试使用Slick 3.0.0从Postgres 9.4数据库返回BLOB

我的简单尝试是

import slick.driver.PostgresDriver.api._ import slick.jdbc.JdbcBackend.Database import scala.concurrent.Await import scala.concurrent.duration._ import scala.concurrent.ExecutionContext.Implicits.global

object QueryRunner extends  App {
val db = Database.forURL("jdbc:postgresql://localhost:5432/test","test_migration","test_migration",driver = "org.postgresql.Driver")

def selectRegions = sql"Select region_data from test.regions".as[java.sql.Blob]
val result = db.run(selectRegions)
val regionData = Await.result(result,1.seconds)}

那让我回头

错误:(16,65)找不到参数rconv的隐式值:slick.jdbc.GetResult [java.sql.Blob]   def selectRegions = sql“从core.regions中选择region_data”.as [java.sql.Blob]

我觉得好像Blob和BYTEA有些专业,我必须错过导入?

1 个答案:

答案 0 :(得分:1)

Slick的标准Postgres驱动程序目前不支持Blob,以及许多其他Postgres特定类型。见http://slick.typesafe.com/doc/3.1.0-M1/schemas.html

  

支持开箱即用的以下基本类型   JdbcProfile中基于JDBC的数据库(强加了某些限制)   由个别数据库驱动程序):

     

数字类型:Byte,Short,Int,Long,BigDecimal,Float,Double

     

LOB类型:java.sql.Blob,java.sql.Clob,Array [Byte]

     

日期类型:java.sql.Date,java.sql.Time,java.sql.Timestamp

     

布尔

     

字符串

     

单元

     

java.util.UUID中

社区努力在修改后的Postgres驱动程序中添加对其他类型的支持。您可以监控该工作的结果:https://github.com/tminglei/slick-pg