编译查询无法识别 'exists' 方法
Compiled query doesn't recognize 'exists' method
我在将我的应用程序从 play 2.3.x 更新到 play 2.4.11.
时遇到了很多麻烦
我首先将 play-slick 从版本 0.8.1 更新到 1.1.1,这意味着将 slick 从 2.1.0 更新到 3.1.0。
我有一个通用的 class,它聚合了像 findById.
这样的基本方法
我现在面临的问题是:
我也用过这个方法:
def existsById(id: Long)(implicit s: Session): DBIO[Boolean] =
tableReference.filter(_.id === id).exists.result
我决定使用编译查询,所以我做了如下操作:
private val queryById = Compiled((id: Rep[Option[Long]]) => tableReference.filter(_.id === id))
def existsById(id: Option[Long])(implicit s: Session): DBIO[Boolean] =
queryById(id).exists.result
现在,我收到一条错误消息说
Cannot resolve symbol exists
我做错了吗?还是错误?
在 "lifted" 将 Query
转换为 Compiled
之后,您必须使用 map
将其转换为不同的 Query
。例如:
val existsById = queryById.map(q => (id: Rep[Long]) => q(id).exists)
我在将我的应用程序从 play 2.3.x 更新到 play 2.4.11.
时遇到了很多麻烦我首先将 play-slick 从版本 0.8.1 更新到 1.1.1,这意味着将 slick 从 2.1.0 更新到 3.1.0。
我有一个通用的 class,它聚合了像 findById.
这样的基本方法我现在面临的问题是:
我也用过这个方法:
def existsById(id: Long)(implicit s: Session): DBIO[Boolean] =
tableReference.filter(_.id === id).exists.result
我决定使用编译查询,所以我做了如下操作:
private val queryById = Compiled((id: Rep[Option[Long]]) => tableReference.filter(_.id === id))
def existsById(id: Option[Long])(implicit s: Session): DBIO[Boolean] =
queryById(id).exists.result
现在,我收到一条错误消息说
Cannot resolve symbol exists
我做错了吗?还是错误?
在 "lifted" 将 Query
转换为 Compiled
之后,您必须使用 map
将其转换为不同的 Query
。例如:
val existsById = queryById.map(q => (id: Rep[Long]) => q(id).exists)