【发布时间】:2016-02-22 16:15:34
【问题描述】:
谁能告诉我用 slick 3.x 插入记录的最佳做法是什么?
我想要一个插入记录的简单模式,响应应该是更新主键值的模型。
case class User(int: Int, name: String, email: String)
我想做以下事情:
- 插入新记录
- 返回模型(用户),并为 id 属性更新 PK 值
- 如果插入失败,我认为是当插入返回小于 0 时抛出异常,对吧?
如果这很重要,我正在使用 postgresql。
文档有这个:
val userWithId =
(users returning users.map(_.id)
into ((user,id) => user.copy(id=Some(id)))
) += User(None, "Stefan", "Zeiger")
是否有一个辅助函数可以在我的整个 DB 层中使用,如果插入失败也会返回异常? 即如果成功,则返回带有 Id 的用户,否则抛出异常.
【问题讨论】:
-
你试过阅读documentation了吗?
-
是的,但是他们没有插入的具体示例,更新数据库并引发异常。应该有一个最佳实践,而不是每个人都自己写。
-
这已在以下问题中得到解答:stackoverflow.com/questions/27080868/…
-
@LaurenceBird no that is not slick 3.x