如何将 SORM 框架与 Play 框架一起使用?

Posted

技术标签:

【中文标题】如何将 SORM 框架与 Play 框架一起使用?【英文标题】:How to use SORM framework with Play Framework? 【发布时间】:2013-02-16 07:28:40 【问题描述】:

我发现SORM 非常有趣和有前途,但我找不到将它与任何指南集成的方法?

【问题讨论】:

【参考方案1】:
    安装 Play >= 2.1.0. 使用 Play 的指南生成项目

    将适当的 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 runplay start 命令运行您的服务器。

【讨论】:

谢谢!知道如何轻松地从 Play 中获取 db.default 设置吗? 如果有人需要它,这个答案解释得很好:***.com/questions/9857907/…【参考方案2】:

Play 已更新为使用新的构建文件格式

参考:Build.scala is not created in play

你可以从 build.sbt 文件继续

外汇:

libraryDependencies ++= Seq(
  jdbc,
  cache,
  "org.sorm-framework" % "sorm" % "0.3.8",
  ws,
  specs2 % Test
)

新用途:

Using SORM with Play Framework 2.3.8

【讨论】:

【参考方案3】:
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
)

【讨论】:

在给出答案时,最好给出some explanation as to WHY your answer 是那个。对于非常老问题尤其如此

以上是关于如何将 SORM 框架与 Play 框架一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

更新如何与 Ebean 和 Play 框架一起使用

如何让 Squeryl 与 Play 一起工作!框架?

如何让 gradle/Eclipse/play 框架协同工作?

在 Scala Play 框架中映射 OneToMany 不向第二个表插入数据

如何将 IntelliJ 与 Play Framework 和 Scala 一起使用

在 Play 框架 2.1.4 中将 Helpers.callAction 与没有静态方法的控制器一起使用