gpt4 book ai didi

scala - 如何在 Slick 3.0 中 COUNT(*)?

转载 作者:行者123 更新时间:2023-12-04 08:33:39 24 4
gpt4 key购买 nike

我使用 Slick 已经有一段时间了,现在我正在从 Slick 2.1 迁移到 3.0。不幸的是,我被一些普通的东西卡住了,比如数线。当我以前这样做时,我的代码在 Slick 2.1 中运行良好:

connection.withSession {
implicit session => coffees.length.run
}

在上面的代码中,我将得到一个 Int 的结果,但是在我移动到 Slick 3.0.2 though the documentation tells me that the code should be the same 后我现在无法让它工作.

我尝试了以下操作(我已经删除了 withSession 不推荐使用的调用):
connection.createSession.withTransaction {
coffees.length
}

但是这段代码将返回一个 slick.lifted.Rep[Int] ,它没有任何方法来获取整数值。我错过了一些隐式导入吗?

最佳答案

您可能已经意识到,run 的结果电话是产生一个Future ,这将在稍后解决。

虽然这意味着最终在代码中的某个地方需要以您在答案中显示的方式等待 future ,但这可以而且应该尽可能晚地推迟。例如,如果您正在使用 Play 框架,请使用异步操作并让 Play 为您处理。

同时与 Future 一起工作就像任何其他 monadic 构造(如 Option )一样 - 调用 map , flatMap , onSuccess等等将您的计算链接到传播的 Future 中语境。

关于scala - 如何在 Slick 3.0 中 COUNT(*)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32405068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com