2016-02-18 1 views
2

Maintenant, je migre le projet Java hérité vers Scala.Conversion de gros POJO en classe de cas

J'ai rencontré le problème suivant: J'appelle le service distant qui renvoie java.util.List<SomePojo>. SomePojo classe contient environ 50 champs et je suis intéressé quelles sont les meilleures pratiques pour passer à l'interface utilisateur au format JSON. J'utilise le framework scalatra et c'est très bien, mais comment mettre ce POJO en classe case alors que les classes de cas sont limitées à 21 champs? Ou y a-t-il un meilleur moyen?

Répondre

1

C'était fixed dans Scala 2.11.

Si vous ne pouvez pas utiliser 2.11, divisez les champs en classes de cas distinctes, puis combinez-les dans un agrégat.

case class Part1(a: Int, b: Int, c: Int) 
case class Part2(d: Int, e: Int, f: Int) 
case class Aggregate(part1: Part1, part2: Part2) 

val aggregate = Aggregate(Part1(0, 1, 2), Part2(3, 4, 5)) 

aggregate match { 
    case Aggregate(Part1(a, b, c), Part2(d, e, f)) => 
} 
+0

Merci pour votre réponse. Belle prise. Quoi qu'il en soit, je n'aime pas créer une classe de cas avec 50 champs donc la superposition pourrait être une bonne solution – Alex