【发布时间】:2014-12-18 02:00:04
【问题描述】:
自从 Scala Anorm Pk 被弃用以来,我一直无法理解问题所在。
我将模型切换为以下:
case class Item(id: Option[Long] = NotAssigned,
title: String,
descr: String,
created: Option[Date],
private val imgs: List[Img],
private val tags: List[Tag])
来自id: Pk[Long]
我将表单更改为:
val itemForm = Form(
mapping(
"id" -> ignored(23L),
"title" -> nonEmptyText,
"descr" -> nonEmptyText,
"created" -> optional(ignored(new Date)),
"imgs" -> Forms.list(itemImgs),
"tags" -> Forms.list(itemTags)
)(Item.apply)(Item.unapply)
)
来自"id" -> ignored(NotAssigned:Pk[Long])
但是,我得到了这个错误。
type mismatch; found : (Option[Long], String, String, scala.math.BigDecimal, Option[java.util.Date], List[models.Img], List[models.Tag]) => models.Item required: (Long, String, String, Option[java.util.Date], List[models.Img], List[models.Tag]) => ?
)(Item.apply)(Item.unapply)
为什么 Item 模型不需要 Option[Long]?
我不知道 23L 是什么,但这就是 Play 文档中的内容。数据库中 id 的值来自一个序列。
如果我将其更改为:
"id" -> ignored(NotAssigned:Option[Long]),
这对我来说最有意义...我收到此错误:
type mismatch; found : anorm.NotAssigned.type required: Option[Long]
"id" -> ignored(NotAssigned:Option[Long]),
这比以前更没有意义了。
【问题讨论】:
标签: scala playframework playframework-2.3 anorm