加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 在Slick 3.0中获取受影响的行(Int)

发布时间:2020-12-16 08:44:26 所属栏目:安全 来源:网络整理
导读:在Slick的早期版本中,在TableQuery上定义了插入函数,返回插入结果.我正在迁移到新的API并执行以下操作: DBIO.seq(someTable += someValue) 但这有类型 dbio.DBIOAction[Unit,NoStream,Write] 我怎样才能收回受影响的行? 编辑 这里的问题似乎是类型没有按照
在Slick的早期版本中,在TableQuery上定义了插入函数,返回插入结果.我正在迁移到新的API并执行以下操作:

DBIO.seq(someTable += someValue)

但这有类型

dbio.DBIOAction[Unit,NoStream,Write]

我怎样才能收回受影响的行?

编辑

这里的问题似乎是类型没有按照我期望的方式排列.以下是Scala将类型视为:

val q: PostgresDriver.DriverAction[PostgresDriver.InsertActionExtensionMethods[(String,String)]#SingleInsertResult,Write] = Admins.tableQuery += ((username,grantor))
val seq: dbio.DBIOAction[Unit,Write] = DBIO.seq(q)
db.run(seq)

这对我来说没有意义.如果q有类型DriverAction [PostgresDriver.InsertActionExtensionMethods [(String,String)]#SingleInsertResult …其中SingleInsertResult是Int的类型别名那么我的DBIO.seq不应该返回DBIOAction [Int,Write]?

解决方法

看看 these examples

它与光滑的2.x没什么不同,但现在一切都返回Futures.

也许是某些事情(在我的头顶,我现在无法自己测试)

val users = TableQuer[Users]
// this is the query
val q = (users += User(None,"Stefan","Zeiger"))
// now you run it
db.run(q).map{ affectedRows =>
  case 1 => println("success")
  case _ => println("oops")
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读