如何在Play Framework中使用SORM框架?

Ahm*_*ani 3 orm scala playframework sorm

我发现SORM非常有趣且有前途,但我找不到一种方法来整合它与任何指南玩?

Nik*_*kov 11

  1. 安装Play> = 2.1.0.
  2. 使用Play的指南生成项目
  3. 添加适当的SORM和所选数据库的依赖关系到生成的project/Build.scala,例如:

    val appDependencies = Seq(
      "org.sorm-framework" % "sorm" % "0.3.8",
      "com.h2database" % "h2" % "1.3.168"
    )
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在同一个文件中,确保您的项目依赖于SORM所依赖的相同Scala版本(对于SORM 0.3.8,它是Scala 2.10.1):

    val main = play.Project(appName, appVersion, appDependencies).settings(
      scalaVersion := "2.10.1"
    )
    
    Run Code Online (Sandbox Code Playgroud)

    如果您错过了这一步,可能会遇到这个问题.

  5. app/models/package.scala所有您case类和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"
    )
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,不需要遵循这些命名和位置约定 - 例如,您可以将SORM实例放在控制器或其他地方(如果需要).

  6. 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)
      }
    
    }
    
    Run Code Online (Sandbox Code Playgroud)

    这将打印出已保存的A案例类值的生成ID .

  7. 使用play runplay start命令运行服务器.