Scala 插入不在slick中工作的对象列表
我正在使用slick3.1.1 我想在DB(postgres)中插入对象列表 我已经编写了以下代码,可以正常工作Scala 插入不在slick中工作的对象列表,scala,slick,Scala,Slick,我正在使用slick3.1.1 我想在DB(postgres)中插入对象列表 我已经编写了以下代码,可以正常工作 for(user<-x.userList) { val users = userClass(user.name,user.id) val userAction = DBAccess.userTable.insertOrUpdate(users) val f = DBAccess.db.run(DBIO.seq(userA
for(user<-x.userList)
{
val users = userClass(user.name,user.id)
val userAction = DBAccess.userTable.insertOrUpdate(users)
val f = DBAccess.db.run(DBIO.seq(userAction))
Await.result(f, Duration.Inf)
}
for(user+=
不会改变您的userQuery
。for循环的每次迭代都会创建一个插入操作,然后立即放弃它
尝试累积插入操作,而不是放弃它们(注意使用yield
):
val usersTable=TableQuery[dbuserTable]
val inserts=for(user我知道这一点,但因为我刚刚发现了它,所以我将对此给出更新的答案
您可以使用+=
插入列表
val usersTable = TableQuery[dbuserTable]
val listToInsert = x.userList.map(userClass(_.name, _.id))
val action = usersTable ++= listToInsert
DBAccess.db.run(action)
这将只执行一个同时插入所有内容的请求
val usersTable = TableQuery[dbuserTable]
val inserts = for (user <- x.userList) yield {
val userRow = userClass(user.name, user.id)
usersTable += userRow
}
DBAccess.db.run(DBIO.seq(inserts: _*))
val usersTable = TableQuery[dbuserTable]
val listToInsert = x.userList.map(userClass(_.name, _.id))
val action = usersTable ++= listToInsert
DBAccess.db.run(action)