【发布时间】:2013-02-16 07:28:40
【问题描述】:
我发现SORM 非常有趣和有前途,但我找不到将它与任何指南集成的方法?
【问题讨论】:
标签: scala orm playframework sorm
我发现SORM 非常有趣和有前途,但我找不到将它与任何指南集成的方法?
【问题讨论】:
标签: scala orm playframework sorm
将适当的 SORM 和所选数据库的依赖项添加到生成的 project/Build.scala,例如:
val appDependencies = Seq(
"org.sorm-framework" % "sorm" % "0.3.8",
"com.h2database" % "h2" % "1.3.168"
)
在同一个文件中,确保您的项目依赖于 SORM 所依赖的同一个 Scala 版本(对于 SORM 0.3.8,它是 Scala 2.10.1):
val main = play.Project(appName, appVersion, appDependencies).settings(
scalaVersion := "2.10.1"
)
如果你错过了这一步,你可能会碰到this issue。
在app/models/package.scala 中放置所有案例类和 SORM 的实例声明,例如:
package models
case class A( name : String )
case class B( name : String )
import sorm._
object Db extends Instance(
entities = Set(Entity[A](), Entity[B]()),
url = "jdbc:h2:mem:test"
)
请注意,无需遵循这些命名和位置约定 - 例如,您可以根据需要将 SORM 实例放在控制器或其他地方。
在app/controllers/Application.scala 中放置一些使用 SORM 的控制器操作,例如:
package controllers
import play.api.mvc._
import models._
object Application extends Controller {
def index = Action {
val user = Db.save(A("test"))
Ok(user.id.toString)
}
}
这将打印出保存的A 案例类值的生成ID。
使用play run 或play start 命令运行您的服务器。
【讨论】:
Play 已更新为使用新的构建文件格式
参考:Build.scala is not created in play
你可以从 build.sbt 文件继续
外汇:
libraryDependencies ++= Seq(
jdbc,
cache,
"org.sorm-framework" % "sorm" % "0.3.8",
ws,
specs2 % Test
)
新用途:
【讨论】:
libraryDependencies ++= Seq(
jdbc,
cache,
ws,
"org.sorm-framework" % "sorm" % "0.3.22",
"com.h2database" % "h2" % "1.3.168",
"org.scalatestplus.play" %% "scalatestplus-play" % "1.5.1" % Test
)
【讨论】: