2

ScalaQuery では、(AFAIK) コードでプロバイダー固有のインポートを使用する必要があります。次に例を示します。

import org.scalaquery.ql.extended.H2Driver.Implicit._

H2 を開発モードで使用し、MySQL を本番環境で使用しようとしています。これを達成する方法はありますか?

4

2 に答える 2

2

私のアプローチは次のとおりです。

class Subscribers(database: Database)(profile: ExtendedProfile) {
    import profile.Implicit._
}

サブスクライバーは基本的に私のData-Access-Objectです。これが最善のアプローチかどうかはわかりません。それは私の場合を解決しました。

次のようなDAOを作成します。

...本番コード:

new Subscribers(database)(MySQLDriver)

...そしてテストコードで:

new Subscribers(database)(H2Driver)
于 2012-11-17T03:18:59.127 に答える
1

私はプレイフレームワークで以下を使用します

object test {
  lazy val extendedProfile = {
    val extendedProfileName = Play.configuration getString "db.default.extendedProfile" get
    companionObjectNamed(extendedProfileName).asInstanceOf[ExtendedProfile]
  }

  def companionObjectNamed(name: String) : AnyRef = {
    val c = Class forName (name + "$")
    c.getField("MODULE$") get c
  }
}

そしてインポート

import util.extendedProfile.Implicit._

org.scalaquery.ql.extended.MySQLDrivermysqlを機能させるためにconfigで使用した文字列です。

于 2012-11-17T02:46:18.077 に答える