scala - 将主键获取为整数的最佳语法

标签 scala playframework

我已经使用Scala和Play Framework已有大约一个月了,但我仍然没有找到使用anorm库编写SQL请求的令人愉快的方法。

在我的应用程序中,我经常发现自己正在做这种事情:

// projectId and componentId are foreign keys. 
case class ProjectComponent(id: Pk[Int], projectId: Int, componentId: Int)

object ProjectComponent extends Magic[Event]
{
    def findForProject(project: Project) : List[ProjectComponent]
    {
        val projectId = project.id.get.get
        ProjectComponent.find("projectId=" + projectId).list()    
    }    
}


我不满意的行是:

// project.id returns Pk[Int]
// project.id.get returns Option[Int]
// project.id.get.get returns Int    
val projectId = project.id.get.get


有没有更好的方法来获取项目ID为整数?考虑一下,我只需要项目ID即可编写查询。 Play中可能有一个功能会自动处理Pk类型。

我是Scala和Play的新手,所以我可能会错过文档中显而易见的内容。

谢谢,

克莱姆

最佳答案

我不知道有什么直接在查询中使用Pk的方法,尽管我不会对此感到惊讶。关于检索Pk值,我在Pk类上发现了以下内容:

def apply() = get.get


因此,这两个调用是等效的:

val projectId = project.id.get.get
val projectId = project.id()

关于scala - 将主键获取为整数的最佳语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8434022/

相关文章:

playframework - 使用 Play 框架构建多项目 SBT

java - 如何为 Play Java 项目的 Eclipse IDE 创建项目设置

java - 使用 JVM Nashorn (Play Framework) 呈现 React.js 时出错。我得到 "null is not a function"

java - 与 Scala/Akka Actor 相比,Java 线程有多重?

java - 使用 Play Framework 的博客 Web 应用程序出现逻辑错误

templates - Play 2.0 模板中 object.member 的模式匹配

scala - SBT 错误 : java. lang.RuntimeException:未检测到主类

scala - Akka Http 客户端 :Custom headers

maven-2 - 从Maven存储库获取升降机源

scala - Play 2 框架中的单元测试 Controller 与 Scala