寻找一种使用 slick 进行批量更新的方法。是否有与 insertALL 等效的 updateAll?到目前为止,古尔的研究让我失败了。
我有一个具有不同状态的案例类别列表。每个都有不同的数值,因此我无法运行典型的更新查询。同时,我想保存多个更新请求,因为我可能要同时更新数千条记录。
很抱歉回答我自己的问题,但我最终所做的只是使用 JDBC 并执行批量更新。
private def batchUpdateQuery = "update table set value = ? where id = ?"
/**
* Dropping to jdbc b/c slick doesnt support this batched update
*/
def batchUpate(batch:List[MyCaseClass])(implicit subject:Subject, session:Session) = {
val pstmt = session.conn.prepareStatement(batchUpdateQuery)
batch map { myCaseClass =>
pstmt.setString(1, myCaseClass.value)
pstmt.setString(2, myCaseClass.id)
pstmt.addBatch()
}
session.withTransaction {
pstmt.executeBatch()
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)