【问题标题】:Slick 3.0 avoid multiple selectsSlick 3.0 避免多选
【发布时间】:2015-12-27 21:34:25
【问题描述】:

我有一个 Long 集合,对于集合中的每个元素,我必须在数据库中查找一个表并进行选择。这种方法的问题在于,它只会发出许多选择,并且每次打开新连接时,当我多次调用此方法时,连接池很快就会耗尽!

val allIds = Seq(1,2,3,4....)

对于 allIds 中的每个 id,我都会这样做:

db.run(fetchTableRowFromDb(_))

有没有更好的方法来避免给出这么多的选择语句?

【问题讨论】:

    标签: scala slick


    【解决方案1】:

    您可以使用批量提取。假设你的表类名是“SampleTable”,表名是“sampletable”。

    val allIds = Seq(1,2,3,4....)
    val query = TableQuery[SampleTable].filter(_.id inSet(allIds.toTraversable))
    db.run(query)
    

    上面的查询类似

    select * from sampletable where id in (1,2,3....);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 2016-05-17
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 2020-01-21
      相关资源
      最近更新 更多