首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >playframework scala如何更新单个属性

playframework scala如何更新单个属性
EN

Stack Overflow用户
提问于 2018-01-19 03:02:08
回答 2查看 88关注 0票数 0

嗨,我只想更新一个模型的一个值,并将其存储到数据库中。

我试试这个:

代码语言:javascript
复制
  def updateProcessTemplateApproveProcessId(processTemplate: ProcessTemplatesModel, approveProcessInstanceId: Int): Future[Int] = {

    val action = for {
      processTemplatesUpdate <- processTemplates if processTemplatesUpdate.id === processTemplate.id // WHERE Statement
    } yield processTemplatesUpdate.approveProcessInstance = Some(approveProcessInstanceId) // SELECT Statement

    db.run(action.update(Some(true)))
  }

但我得到的错误是不允许重新分配给val ..。这是正确的;)所以我将model中的属性改为var。

代码语言:javascript
复制
case class ProcessTemplatesModel(
                                  id: Option[Int] = None,
                                  title: String,
                                  version: String,
                                  createdat: Option[String],
                                  updatedat: Option[String],
                                  deadline: Option[Date],
                                  status: Option[String],
                                  comment: Option[String],
                                  checked: Option[Boolean],
                                  checkedat: Option[Date],
                                  approved: Option[Boolean],
                                  approvedat: Option[Date],
                                  deleted: Boolean,
                                  approveprocess: Int,
                                  trainingsprocess: Option[Int],
                                  previousVersion: Option[Int],
                                  originTemplate: Option[Int],
                                  client: Int,
                                  var approveProcessInstance: Option[Int],

在这种情况下,我的文件是什么?

提前感谢

EN

Stack Overflow用户

回答已采纳

发布于 2018-01-19 03:09:09

不要改变你的case类。假设processTemplates是一个TableQuery,请改为执行以下操作:

代码语言:javascript
复制
val query = for {
  processTemplatesUpdate <- processTemplates if processTemplatesUpdate.id === processTemplate.id
} yield processTemplatesUpdate.approveProcessInstance

val action = query.update(Some(approveProcessInstanceId))
db.run(action)
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48328563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档