如何处理anorm的Pk弃用

kws*_*tas 7 scala playframework anorm

从播放框架的anorm库2.3.0版开始,该特性Pk已被弃用,它建议使用其子类IdNotAssigned(文档).

但是,如果我们有一个变量可以采取一个Id或一个NotAssiged?具体来说,在我的代码中,我有一个class Person(id: Pk[Long], name: String).使用Pk作为类型id,我可以创建新的用户Person(NotAssigned, "kostas")或从我的数据库中获取Person(Id(3), "kostas").

如何迁移我的代码以不使用已弃用的Pk特征,但保持相同的功能?

Mic*_*jac 7

Pk[A]Option[A]结构相同,Id[A](value)对应于Some[A](value),NotAssigned对应于None.

因此,推荐的迁移将是使用Option[Long].我真的不理解开发者的决定弃用Pk[A],虽然,但不Id[A]NotAssigned,因为两者都没有它基本上是无用的.尽管如此,Option对你来说功能相同,而anorm处理它也是一样的.