【问题标题】:Best practise for inserting records with slick 3.x使用 slick 3.x 插入记录的最佳实践
【发布时间】:2016-02-22 16:15:34
【问题描述】:

谁能告诉我用 slick 3.x 插入记录的最佳做法是什么?

我想要一个插入记录的简单模式,响应应该是更新主键值的模型。

case class User(int: Int, name: String, email: String)

我想做以下事情:

  1. 插入新记录
  2. 返回模型(用户),并为 id 属性更新 PK 值
  3. 如果插入失败,我认为是当插入返回小于 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

标签: scala slick


【解决方案1】:

正如@Laurece Bird 提到的,有一个answer already。尽管它的目标是 slick 2.x,但它应该适用于 slick 3.x

你试过了吗?你有什么错误吗?

不过,逻辑还是一样的,尝试返回一些东西,然后在 java try/catch 或 scala Try 上接受该方法

【讨论】:

  • 我正在寻找一种我可以在任何地方使用的通用解决方案,比如可以做到这一点的辅助方法。
  • 我认为它不存在。您可以在 github repo 上提出问题,以便他们在以后的版本中考虑。否则,只要您创建...
猜你喜欢
  • 1970-01-01
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
相关资源
最近更新 更多