我正在使用Scala和Anorm编写Playframework 2.0应用程序来访问db。
目前我在Pk[Long]
字段中使用id
,我担心访问实际值需要额外get
次调用。因此,我开始对Long
字段使用普通id
,一切仍然完美。
Pk
的用途是什么,我应该使用它而不是普通类型? Pk
是否为普通类型提供了额外的功能/优势?
答案 0 :(得分:18)
Pk
允许您指定键入的主键。
另外,假设你有这样一个人为的模型:
case class MyModel(id: Pk[Long], foo: String)
您可以使用以下方法构建模型实例:
MyModel(anorm.NotAssigned, "notKnownAtRuntime")
...如果您的数据库负责生成密钥,或者其他:
MyModel(anorm.Id(123L), "knownAtRuntime")