【问题标题】:Blob or BYTEA from Plain SQL Query in Slick 3.0.0Slick 3.0.0 中普通 SQL 查询中的 Blob 或 BYTEA
【发布时间】:2015-07-01 03:28:12
【问题描述】:

我正在尝试使用 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 有点专业,所以我一定缺少导入?

【问题讨论】:

    标签: scala jdbc slick


    【解决方案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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 2023-04-02
    • 2016-12-04
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    相关资源
    最近更新 更多