Scala Play и Slick. Написание сопоставления формы и сопоставления базы данных для объекта

Я использую Slick 3.0 внутри Play. У меня есть этот небольшой класс, для которого я написал отображение базы данных

case class Person(id: Int, firstname: String, lastname: String)

class People(tag: Tag) extends Table[Person](tag, "PEOPLE") {
  def id = column[Int]("PERSON_ID", O.PrimaryKey, O.AutoInc)
  def firstname = column[String]("PERSON_FIRST_NAME")
  def lastname = column[String]("PERSON_LAST_NAME")
  def * = (id, firstname, lastname) <> (Person.tupled, Person.unapply _)
}

это компилируется и работает отлично. Теперь я создал HTML-форму, в которую буду вводить данные, и мне нужно было привязать HTML-форму к объекту Person. Итак, я написал

object Person {
  val form = Form(mapping(
    "id" -> number,
    "firstname" -> text,
    "lastname" -> text
  )(Person.apply)(Person.unapply))
}

Однако теперь я получаю сообщение об ошибке

[error] /Users/abhi/ScalaProjects/MyPlay1/app/tables/PersonDAO.scala:18: value tupled is not a member of object models.Person
[error]   def * = (id, firstname, lastname) <> (Person.tupled, Person.unapply _)
[error]                                                ^
[error] one error found
[error] (compile:compile) Compilation failed
[error] Total time: 4 s, completed Jun 28, 2015 4:37:50 PM
Mohitas-MBP:MyPlay1 abhi$ 

Таким образом, кажется, что добавление объекта-компаньона нарушает мой код отображения базы данных. Раньше он искал свойство tuple в классе case, но теперь он ищет объект и не находит его.

Как я могу иметь класс case, а затем сопоставления базы данных и сопоставления форм?


person Knows Not Much    schedule 28.06.2015    source источник
comment
Это ошибка scala, вы можете использовать (Person. apply _).tupled вместо Person. tupled   -  person jilen    schedule 29.06.2015
comment
это работает. вы должны указать это как ответ, чтобы я мог отметить его соответствующим образом.   -  person Knows Not Much    schedule 29.06.2015


Ответы (1)


Это ошибка scala, вы можете использовать (Person. apply _).tupled вместо Person. tupled в качестве обходного пути.

person jilen    schedule 29.06.2015