Какова цель анорма 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")