Slick 3.2.x в неподдерживаемой базе данных - PullRequest
0 голосов
/ 29 мая 2018

Позвольте мне обновить уже заданный вопрос , поскольку ответ для новичка неясен.Я пытаюсь начать с Play, Slick 3.2.3 и неподдерживаемой базы данных (если быть точным, RDB).Я начал с play-scala-isolated-slick-example, взятого с сайта Play.База данных RDB не поддерживается Slick, поэтому я попытался использовать общий профиль Jdbc (подходит для всех):

package test.mydb.slick
import javax.inject.{Inject, Singleton}
import slick.driver.JdbcProfile
import slick.jdbc.JdbcBackend.Database
import test.mydb.{MyTblDAO, Tbl}  // case class defined there
import scala.concurrent.{ExecutionContext, Future}
import scala.language.implicitConversions
import scala.reflect.ClassTag

@Singleton
class SlickMyTblDAO @Inject()(db: Database)(implicit ec: ExecutionContext) 
    extends MyTblDAO with test.mydb.slick.Tables {

//  override val profile: JdbcProfile = _root_.slick.jdbc.JdbcProfile
override val profile: JdbcProfile = slick.driver.JdbcProfile

import profile.api._

def lookup(id: String): Future[Option[MyTbl]] = {....  and so on

Этот код не скомпилирован из-за:

type mismatch;
[error]  found   : slick.driver.JdbcProfile.type
[error]  required: slick.driver.JdbcProfile
[error]     (which expands to)  slick.jdbc.JdbcProfile
[error]   override val profile: JdbcProfile = slick.driver.JdbcProfile
[error]                                                    ^

Не уверен, что я полностью понимаю суть проблемы, но я думаю, что нельзя напрямую использовать профиль Jdbc.В ответе говорится, что «другие базы данных могут поддерживаться пользовательской реализацией черты slick.jdbc.JdbcProfile».Значит ли это, что мне нужно реализовать профиль самому?Это достижимо для начинающих?Мне нужен только простой DML, без DDL, без соединений.

1 Ответ

0 голосов
/ 29 мая 2018

В сообщении об ошибке говорится, что profile необходимо расширить признак JdbcProfile, но вы передаете ему объект-компаньон JdbcProfile, который нерасширить черту с тем же именем.

Чтобы ответить на другой вопрос - да, я боюсь, что вам придется реализовать JdbcProfile самостоятельно, и я считаю, что это может быть довольно глотком для новичка, потому чтоAPI Slick довольно продвинутый.

...