Question

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?

Was it helpful?

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")
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top