scala – 如何使Squeryl与Play一起工作!框架?
我正在尝试学习如何使用Play和Squeryl创建一个简单的数据库应用程序.我已经从Play教程制作了任务应用程序,但我想更改模型/架构,以便它使用Squeryl而不是Anorm.我一直在寻找不同的
tutorials,例子和
answers,但我还没有弄清楚如何做到这一点.
所以,鉴于Play Tutorial (ScalaTodoList)的源代码;如何使其与Squeryl一起使用? 进一步来说: >如何在模型中实现all(),create()和delete()方法? (我想为任务使用自动递增ID) 这就是我到目前为止所做的 我已经完成了Play ScalaTodoList教程. 在project / Build.scala,对象ApplicationBuild中,我添加了依赖项: // From the "Squeryl Getting Started tutorial" val posgresDriver = "postgresql" % "postgresql" % "8.4-702.jdbc4" val h2 = "com.h2database" % "h2" % "1.2.127" // From the "Squeryl Getting Started tutorial" libraryDependencies ++= Seq( "org.squeryl" %% "squeryl" % "0.9.5",h2 ) // From the Play tutorial val appDependencies = Seq( // Add your project dependencies here,"org.squeryl" %% "squeryl" % "0.9.5",// Copied from above so that it compiles (?) "postgresql" % "postgresql" % "8.4-702.jdbc4" ) 添加了app / Global.scala(取自上面提到的SO answer,只是将适配器更改为H2): import play.db.DB import play.api.Application import play.api.GlobalSettings import org.squeryl._ import org.squeryl.adapters._ object Global extends GlobalSettings { override def onStart(app: Application): Unit = { SessionFactory.concreteFactory = Some( () => Session.create(DB.getDataSource().getConnection(),dbAdapter)); } override def onStop(app: Application): Unit = { } val dbAdapter = new H2Adapter(); // Hard coded. Not good. } 在app / models / Task.scala中我添加了导入并删除了all(),create()和delete()中的Anorm实现. import org.squeryl.PrimitiveTypeMode._ import org.squeryl.Schema import org.squeryl.annotations.Column case class Task(id: Long,label: String) object Task extends Schema { val tasks = table[Task] // Inspired by Squeryl tutorial def all(): List[Task] = { List[Task]() // ?? } def create(label: String) { // ?? } def delete(id: Long) { // ?? } } 其余文件保留在Play教程结尾处. 解决方法
以下是Squeryl的Play 2项目示例:
https://github.com/jamesward/play2bars/tree/scala-squeryl (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |