2014-06-12 11 views
7

Dalla versione 2.3.0 della libreria anorm del quadro di gioco, il tratto Pk è deprecato e si suggerisce l'utilizzo delle sue sottoclassi Id e NotAssigned (documentation).Come gestire Pk deprecazione di anorm

Ma cosa succede se abbiamo una variabile che può prendere uno Id o uno NotAssiged? In particolare, nel mio codice ho un class Person(id: Pk[Long], name: String). Utilizzando Pk come tipo di id, posso creare nuovi utenti come Person(NotAssigned, "kostas") o ottenere esistenti dal mio db .

Come posso migrare il mio codice per non utilizzare il tratto deprecato Pk, ma mantenere la stessa funzionalità?

risposta

7

Pk[A] è uguale Option[A] dalla struttura, dove Id[A](value) corrisponde Some[A](value), e NotAssigned corrisponde None.

Quindi la migrazione consigliata sarebbe quella di utilizzare Option[Long], invece. Non capisco davvero la decisione degli sviluppatori di deprecare Pk[A], ma non Id[A] e NotAssigned, in quanto entrambi sono sostanzialmente inutili senza di esso. Tuttavia, Option funzionerà allo stesso modo per te e anorm lo gestisce allo stesso modo.

Problemi correlati