如何获取插入的对象(使用数据库中的默认值)?

时间:2014-01-22 17:18:31

标签: scala playframework slick

我很好奇如何将插入的物体拿回来。我想在Play中的create API路径中返回构建的模型对象。

到目前为止,我有类似的内容:

def create(username: String, email: String, password:String)(implicit database: Database): Option[FailureResult]  = {
  database withSession {
    implicit session => {
      val affectedRows = users += new User(username=username, email=email, password=password)
      onlyIf(affectedRows != 1){ UnexpectedErrorResult("Unexpected Error: User was not created") }
    }
}

+=运算符仅返回受影响的行。有没有办法让对象回来而不做另一个查找?

1 个答案:

答案 0 :(得分:2)

您可以使用returning方法指定要从插入中返回的某些列。我seen it过去常常会返回一个自动增加的ID,但我想你可以获得所有列并重建对象。

我还可以指向my work in progress Slick/Play project,我花了很多时间让这些映射看起来不错。顺便说一句,所有这些都是Slick 1.0,并且很多内容在2.0中得到了改进,例如autoinc的统一语义,这使得代码更加出色!