/ / Blob oder BYTEA von Plain SQL-Abfrage in Slick 3.0.0 - Scala, JDBC, Slick

Blob oder BYTEA von Plain SQL-Abfrage in Slick 3.0.0 - Scala, JDBC, Slick

Ich versuche, ein BLOB aus einer Postgres 9.4-Datenbank mit Slick 3.0.0 zurückzugeben

Mein einfacher Versuch ist

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)}

Das bringt mich zurück

Fehler: (16, 65) konnte keinen impliziten Wert für den Parameter rconv finden: slick.jdbc.GetResult [java.sql.Blob] def selectRegions = sql "Wählen Sie region_data aus core.regions" .as [java.sql.Blob]

Ich habe das Gefühl, da Blob und BYTEA etwas spezialisiert sind, dass ich einen Import verpassen muss?

Antworten:

1 für die Antwort № 1

Der Slick-Postgres-Standardtreiber unterstützt derzeit Blobs sowie viele andere Postgres-spezifische Typen nicht http://slick.typesafe.com/doc/3.1.0-M1/schemas.html:

Die folgenden primitiven Typen werden standardmäßig für JDBC-basierte Datenbanken in JdbcProfile (mit bestimmten Einschränkungen) durch die einzelnen Datenbanktreiber):

Numerische Typen: Byte, Short, Int, Long, BigDecimal, Float, Double

LOB-Typen: java.sql.Blob, java.sql.Clob, Array [Byte]

Datumstypen: java.sql.Date, java.sql.Time, java.sql.Timestamp

Boolesch

Zeichenfolge

Einheit

java.util.UUID

Es gab eine Gemeinschaftsbemühung, Unterstützung für zusätzliche Typen in einem modifizierten Postgres-Treiber hinzuzufügen. Sie können die Ergebnisse dieser Bemühungen überwachen: https://github.com/tminglei/slick-pg.