这是来自play2内置的zentasks的示例代码:
object Project {
// -- Parsers
/**
* Parse a Project from a ResultSet
*/
val simple = {
get[Pk[Long]]("project.id") ~
get[String]("project.folder") ~
get[String]("project.name") map {
case id~folder~name => Project(id, folder, name)
}
}
}
请注意字段键:project.id
,project.folder
,project.name
。
project
部分是什么意思?它来自哪里?
查看查询方法:
def findById(id: Long): Option[Project] = {
DB.withConnection { implicit connection =>
SQL("select * from project where id = {id}").on(
'id -> id
).as(Project.simple.singleOpt)
}
}
SQL为select * from project ...
,结果应为:
id | folder | name
不
project.id | project.folder | project.name
为什么我们应该将密钥指定为project.???
,而不是直接指定field name
?
play2如何使用project.
部分?
答案 0 :(得分:0)
恕我直言,这只是数据库别名。
select id, folder, name from project
与
相同select project.id, project.folder, project.name from project
甚至
select p.id, p.folder, p.name from project p
答案 1 :(得分:0)
根据here中提供的代码,Anorm Parser使用提供的字符串来检索给定列。
当它获得一些元数据时,它需要该字段的整个范围(表+名称)才能工作。