Límite de 22 campos en Scala 2.11 + Play Framework 2.3 Clases de casos y funciones

Scala 2.11 está fuera y el límite de 22 campos para las clases de casos parece ser fijo (Problema Scala, Notas de lanzamiento)

Esto ha sido un problema para mí por un tiempo porque uso clases de casos para modelar entidades de bases de datos que tienen más de 22 campos en Play +Postgres Async. Mi solución en Scala 2.10 fue dividir los modelos en varias clases de casos, pero encuentro que esta solución es difícil de mantener y ampliar, y esperaba poder implementar algo como se describe a continuación después de cambiar a Play 2.3.0-RC1 + Scala 2.11. 0:

package entities

case class MyDbEntity(
  id: String,
  field1: String,
  field2: Boolean,
  field3: String,
  field4: String,
  field5: String,
  field6: String,
  field7: String,
  field8: String,
  field9: String,
  field10: String,
  field11: String,
  field12: String,
  field13: String,
  field14: String,
  field15: String,
  field16: String,
  field17: String,
  field18: String,
  field19: String,
  field20: String,
  field21: String,
  field22: String,
  field23: String,
) 

object MyDbEntity {
  import play.api.libs.json.Json
  import play.api.data._
  import play.api.data.Forms._

  implicit val entityReads = Json.reads[MyDbEntity]
  implicit val entityWrites = Json.writes[MyDbEntity]
}

El código anterior no se compila con el siguiente mensaje tanto para "Lecturas" como para "Escrituras":

No unapply function found

Actualización de las "Lecturas" y "Escrituras" a:

  implicit val entityReads: Reads[MyDbEntity] = (
    (__ \ "id").read[Long] and
    (__ \ "field_1").read[String]
    ........
  )(MyDbEntity.apply _)  

  implicit val postWrites: Writes[MyDbEntity] = (
    (__ \ "id").write[Long] and
    (__ \ "user").write[String]
    ........
  )(unlift(MyDbEntity.unapply))

Tampoco funciona:

  implementation restricts functions to 22 parameters

  value unapply is not a member of object models.MyDbEntity

Tengo entendido que Scala 2.11 todavía tiene algunas limitaciones en las funciones y que algo como lo que describí anteriormente aún no es posible. Esto me parece extraño ya que no veo el beneficio de levantar las restricciones en las clases de casos si uno de los principales casos de usuarios aún no es compatible, por lo que me pregunto si me estoy perdiendo algo.

¡Los indicadores de problemas o detalles de implementación son más que bienvenidos! ¡Gracias!

Respuestas a la pregunta(6)

Su respuesta a la pregunta