2014-06-12 7 views
7

Seit der Version 2.3.0 der anorm Bibliothek Spiel Rahmen, das Merkmal Pk ist veraltet und es schlägt die Nutzung ihrer Unterklassen Id und NotAssigned (documentation) zu handhaben.Wie Pk anorm des deprecation

Aber was ist, wenn wir eine Variable haben, die entweder eine Id oder eine NotAssiged nehmen kann? Speziell in meinem Code habe ich eine class Person(id: Pk[Long], name: String). Unter Verwendung Pk als der Art von id kann ich neue Benutzer wie Person(NotAssigned, "kostas") erstellen oder von meinem db erhalten.

Wie kann ich meinen Code migrieren, um das veraltete Attribut Pk nicht zu verwenden, aber die gleiche Funktionalität beibehalten?

Antwort

7

Pk[A] ist die gleiche wie Option[A] durch Struktur, wobei Id[A](value) zu Some[A](value) entspricht und NotAssignedNone entspricht.

Die empfohlene Migration wäre also stattdessen Option[Long] zu verwenden. Ich verstehe nicht wirklich die Entscheidung der Entwickler, zu verwerfen, aber nicht Id[A] und NotAssigned, da beide ohne sie im Wesentlichen nutzlos sind. Nichtsdestoweniger wird Option das gleiche für Sie funktionieren, und anorm behandelt es genauso.