anorm的Pk的目的是什么?

时间:2012-06-23 09:04:52

标签: scala types playframework-2.0 anorm

我正在使用Scala和Anorm编写Playframework 2.0应用程序来访问db。

目前我在Pk[Long]字段中使用id,我担心访问实际值需要额外get次调用。因此,我开始对Long字段使用普通id,一切仍然完美。

Pk的用途是什么,我应该使用它而不是普通类型? Pk是否为普通类型提供了额外的功能/优势?

1 个答案:

答案 0 :(得分:18)

Pk允许您指定键入的主键。

另外,假设你有这样一个人为的模型:

case class MyModel(id: Pk[Long], foo: String)

您可以使用以下方法构建模型实例:

MyModel(anorm.NotAssigned, "notKnownAtRuntime")

...如果您的数据库负责生成密钥,或者其他:

MyModel(anorm.Id(123L), "knownAtRuntime")