ScalaQuery では、(AFAIK) コードでプロバイダー固有のインポートを使用する必要があります。次に例を示します。
import org.scalaquery.ql.extended.H2Driver.Implicit._
H2 を開発モードで使用し、MySQL を本番環境で使用しようとしています。これを達成する方法はありますか?
ScalaQuery では、(AFAIK) コードでプロバイダー固有のインポートを使用する必要があります。次に例を示します。
import org.scalaquery.ql.extended.H2Driver.Implicit._
H2 を開発モードで使用し、MySQL を本番環境で使用しようとしています。これを達成する方法はありますか?
私のアプローチは次のとおりです。
class Subscribers(database: Database)(profile: ExtendedProfile) {
import profile.Implicit._
}
サブスクライバーは基本的に私のData-Access-Objectです。これが最善のアプローチかどうかはわかりません。それは私の場合を解決しました。
次のようなDAOを作成します。
...本番コード:
new Subscribers(database)(MySQLDriver)
...そしてテストコードで:
new Subscribers(database)(H2Driver)
私はプレイフレームワークで以下を使用します
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.MySQLDriver
mysqlを機能させるためにconfigで使用した文字列です。