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

时间:2011-12-08 16:13:31

标签: 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的新手,所以我可能错过了文档中显而易见的内容。

谢谢,

Clem

1 个答案:

答案 0 :(得分:1)

我不知道如何直接在查询中使用Pk,尽管如果可能的话我不会感到惊讶。至于检索Pk值,我在Pk类上找到了以下内容:

def apply() = get.get

因此这两个电话是等价的:

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