【发布时间】:2017-03-09 18:01:30
【问题描述】:
def insert(u: User): Future[User] = {
val insertQuery = users returning users.map(_.id) into ((user, id) => user.copy(id = id))
val action = insertQuery += u
db.run(action)
}
case class User(id: Int, name: String, ..)
当我使用这样的用户调用此方法时:
User(0, "john", ..)
我得到错误:
原因:org.postgresql.util.PSQLException: ERROR: duplicate key 值违反了唯一约束“users_pmkey”
它似乎试图插入 0 作为 PK。在我的 DAO 中,我将列设置为:
def id = column[Int]("id", O.PrimaryKey)
我基本上是在尝试做两件事:
- 插入用户
- 用postgresql新生成的ID返回User。
我做错了什么?
【问题讨论】:
标签: scala playframework slick