我正在对 postgresql 数据库使用 Play 2.1.4。在 postgresql 数据库中,我使用 uuid 作为我的 pk 数据类型,它与 java.util.UUID 相关。anorm 中的 SqlParser.getT 函数没有 java.util.UUID 的隐式提取器。这是有道理的,因为我认为没有多少人使用它。但是,我似乎找不到有关如何添加的说明。有谁知道如何在 Play 中向 anorm.SqlParser 添加一个额外的隐式提取器?
我得到的错误如下:
找不到参数提取器的隐式值:anorm.Column[java.util.UUID]
我对 Scala 和 Play 真的很陌生,所以如果我的方法完全错误,请告诉我,但我真的很想能够像你在下面看到的那样做一些事情。
case class App(appId: UUID, appName: String, appServerName: String,
appComponent: String, appDescription: String,
appDateCreated: DateTime, appDateModified: DateTime,
appValidated: Boolean)
val app = {
get[UUID]("app_id") ~
get[String]("app_name") ~
get[String]("app_server_name") ~
get[String]("app_component") ~
get[String]("app_description") ~
get[java.util.Date]("app_date_created") ~
get[java.util.Date]("app_date_modified") ~
get[Boolean]("app_validated") map {
case id ~ name ~ serverName ~ component ~ description ~ dateCreated ~
dateModified ~ validated => App(id, name, serverName, component,
description, new DateTime(dateCreated.getTime),
new DateTime(dateModified.getTime), validated)
}
}
def all(): List[App] = DB.withConnection { implicit conn =>
SQL("SELECT * FROM apps").as(app *)
}