我很好奇如何将插入的物体拿回来。我想在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") }
}
}
+=
运算符仅返回受影响的行。有没有办法让对象回来而不做另一个查找?
答案 0 :(得分:2)
您可以使用returning
方法指定要从插入中返回的某些列。我seen it过去常常会返回一个自动增加的ID,但我想你可以获得所有列并重建对象。
我还可以指向my work in progress Slick/Play project,我花了很多时间让这些映射看起来不错。顺便说一句,所有这些都是Slick 1.0,并且很多内容在2.0中得到了改进,例如autoinc的统一语义,这使得代码更加出色!