如何处理anorm的Pk弃用

时间:2014-06-12 19:15:47

标签: scala playframework anorm

从播放框架的anorm库的2.3.0版本开始,特性Pk被弃用,它建议使用其子类IdNotAssigneddocumentation )。

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

如何将代码迁移到不使用已弃用的Pk特征,但保留相同的功能?

2 个答案:

答案 0 :(得分:7)

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

因此建议的迁移将使用Option[Long]。我不太了解开发人员的情况。决定弃用Pk[A],但不是Id[A]NotAssigned,因为如果没有它,两者基本上都是无用的。尽管如此,Option对你来说也是一样的,而anorm处理它也是一样的。

答案 1 :(得分:3)

正在添加有关此弃用的迁移说明:https://github.com/playframework/playframework/pull/3029/files。以前的答案是关于选项使用的。

最佳