Позвольте мне обновить уже заданный вопрос , поскольку ответ для новичка неясен.Я пытаюсь начать с 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, без соединений.