当我尝试运行时(来自Play Framework):
import play.api.db.DB
import anorm._
import org.joda.time.DateTime
import AnormExtensions._ // http://stackoverflow.com/a/11975107/11236
import play.api.Play.current
import java.util.Date
var stream = SQL("SELECT amiId, created, version FROM Amis WHERE created = {maxCreated}")
.on("maxCreated" -> new Date(maxCreated.getMillis))
.apply()
val map: Stream[Ami] = stream.map { ami =>
val s: String = ami[String]("amiId")
val date: Date = ami[Date]("created")
// The following line throws a compilation error
var version: Integer = ami[Integer]("version")
new Ami(s, new DateTime(date), version)
}
我收到编译错误:could not find implicit value for parameter c: anorm.Column[Integer]
这里有什么问题?如果我能阅读Date
,为什么我不能阅读Integer
?
答案 0 :(得分:2)
问题在于我使用了java java.lang.Integer
而不是scala.Int
。
答案 1 :(得分:0)
这种缺失的数字转换是在Play 2.3发布时修复的。您可能希望升级到。