Slick 3.0避免多次选择

时间:2015-09-30 07:29:59

标签: scala slick

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

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

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

db.run(fetchTableRowFromDb(_))

有没有更好的方法来避免提供这么多的选择陈述?

1 个答案:

答案 0 :(得分: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....);