could not find implicit value for parameter fieldMapper: org.squeryl.internals.FieldMapper
akshaydeo opened this issue · comments
error] /home/akshay/code_base/wal/app/models/Tables.scala:5: could not find implicit value for parameter fieldMapper: org.squeryl.internals.FieldMapper
[error] object Tables extends ActiveRecordTables with PlaySupport{
[error] ^
[error] one error found
[error] (compile:compile) Compilation failed
[error] application -
! @6hc5fc293 - Internal server error, for (GET) [/] ->
play.PlayExceptions$CompilationException: Compilation error[could not find implicit value for parameter fieldMapper: org.squeryl.internals.FieldMapper]
at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14$$anonfun$apply$16.apply(PlayReloader.scala:304) ~[na:na]
at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14$$anonfun$apply$16.apply(PlayReloader.scala:304) ~[na:na]
at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14.apply(PlayReloader.scala:304) ~[na:na]
at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14.apply(PlayReloader.scala:298) ~[na:na]
at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
I am getting this exception repeatedly.
My model class is like
case class User(@Required displayName: String,
@Required @Length(max = 300) whyTropper: String,
@Required @Unique @Email email: String,
@Required isTermsAccepted: Boolean,
@Required isPrivacyAccepted: Boolean,
facebookUserId: Long,
@Required preferredLanguage: String,
@Required isAPrivateProfile: Boolean = false) extends ActiveRecord with Datestamps {
@Required(on = "create")
@Length(min = 6)
@Transient
var password: String = _
var hashedPassword: String = _
override def beforeSave() {
if (password != null && password != "")
hashedPassword = User.md5digest(password)
}
}
object User extends ActiveRecordCompanion[User] {
val md5 = java.security.MessageDigest.getInstance("MD5")
def md5digest(str: String): String = {
md5.digest(str.getBytes).map("%02x".format(_)).mkString
}
def authenticate(login: String, password: String): Option[User] = {
this.findBy("login" -> login, "hashedPassword" -> md5digest(password))
}
}
And I am using play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_51).
Build.sbt
import play.Project._
name := "Wal"
version := "1.0-SNAPSHOT"
// for scala -active record plugin
libraryDependencies ++= Seq(
"com.github.aselab" %% "scala-activerecord" % "0.2.3",
"com.github.aselab" %% "scala-activerecord-play2" % "0.2.3",
jdbc,
"postgresql" % "postgresql" % "9.1-901.jdbc4"
)
// for sentry appender
libraryDependencies ++= Seq(
"net.kencochrane.raven" % "raven-logback" % "4.1.2"
)
// dependency for scala logging
libraryDependencies += "com.typesafe" %% "scalalogging-slf4j" % "1.0.1"
play.Project.playScalaSettings
Tables
package models
import com.github.aselab.activerecord.{PlaySupport, ActiveRecordTables}
object Tables extends ActiveRecordTables with PlaySupport{
val users = table[User]
}
Sorry, it's a documentation bug.
Please insert import com.github.aselab.activerecord.dsl._
into models/Tables.scala