使用光滑的3.x插入记录的最佳做法

时间:2016-02-22 16:15:35

标签: scala slick

有人可以告诉我使用光滑的3.x插入记录的最佳做法是什么?

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

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

我想做以下事情:

  1. 插入新记录
  2. 返回带有id属性
  3. 的PK值的模型(User)
  4. 如果插入失败则抛出异常,我相信当插入返回小于0时会出现错误吗?
  5. 如果重要的话,我正在使用postgresql。

    文档有这个:

    val userWithId =
      (users returning users.map(_.id)
             into ((user,id) => user.copy(id=Some(id)))
      ) += User(None, "Stefan", "Zeiger")
    

    我是否可以在整个数据库层中使用辅助函数,如果插入失败也会返回异常?即如果成功,则返回具有Id的用户,否则抛出异常

1 个答案:

答案 0 :(得分:2)

正如@Laurece Bird所提到的,那里有answer already。尽管目标是光滑2.x,但它应该适用于光滑的3.x

你尝试过吗?你有任何错误吗?

但是,它的逻辑是一样的,尝试返回一些东西,并在java try/catch或scala Try

中包含该方法