Какова цель анорма Pk?

Я пишу приложение Playframework 2.0 с помощью Scala и Anorm для доступа к db.

В настоящее время я использую поля Pk[Long] для id, и я беспокоюсь о дополнительном вызове get, который необходим для доступа к фактическому значению. Поэтому я начинаю использовать обычные поля Long для id, и все работает отлично.

Для чего Pk, и должен ли я использовать его вместо обычных типов? Имеет ли Pk дополнительные функции/преимущества по сравнению с обычными типами?

Ответы

Ответ 1

Pk позволяет указать типизированный первичный ключ.

Кроме того, скажем, у вас есть надуманная модель:

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

У вас есть возможность создать экземпляр вашей модели с помощью:

MyModel(anorm.NotAssigned, "notKnownAtRuntime")

... если ваша база данных отвечает за создание ваших ключей или иначе:

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