Playframework:表单中映射方法的参数太多

时间:2018-03-29 00:45:09

标签: forms scala playframework slick

我正在使用Slick连接到数据库。但是,在我的表中有超过22个字段。我在使用表单时感到很困惑。编译器通知我映射方法的参数太多了。我找到了一些方法来解决它,比如使用嵌套值,但它们并不详细。如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

以下是使用嵌套类的示例(为方便起见,少于22个字段)。

数据模型

case class Address(city: String)

case class Person(firstName: String, address: Address)

嵌套表格

val personForm = Form[Person](
    "firstName" -> text,
    "address" -> mapping(
        "city" -> text
    )(Address.apply)(Address.unapply)
)(Person.apply)(Person.unapply)

光滑嵌套(仅使用一个表)

class PersonTableDef(tag: Tag) extends Table[Person](tag, "person") {
    def name = column[String]("name")

    def city = column[String]("city")

    def address = (city) <> ((Address.apply _).tupled, Address.unapply)

    def * = (name, address) <> ((Person.apply _).tupled, Person.unapply)
}

答案 1 :(得分:0)

也许你可以分成几个表并构建一个复合对象,就好像它是一个继承。好吧,你无法将实体转换为json ......

帮助链接类似物,但采用另一种方法:

In stackoverflow

External docs by Underscore