What is purpose of anorm's Pk?
anorm, playframework-2.0, scala, types
Solution
`Pk` allows you to specify a typed primary key.
Also, say you have a contrived model like this:
case class MyModel(id: Pk[Long], foo: String)
You have the benefit of constructing an instance of your model with:
MyModel(anorm.NotAssigned, "notKnownAtRuntime")
...if your database is responsible for generating your keys, or otherwise:
MyModel(anorm.Id(123L), "knownAtRuntime")
Problem
I'm writing Playframework 2.0 application using Scala and Anorm to access db. Currently I'm using `Pk[Long]` for `id` fields and I'm worry about additional `get` call needed to access actual value. So I start using plain `Long` for `id` fields and everything still work perfect. What `Pk` is for, and should I use it instead of plain types? Does `Pk` gives me additional features/benefits over plain types?