Ich beginne gerade mit Anorm und Parser-Kombinatoren. Es scheint so, als gäbe es eine Menge Code. Zum Beispiel habe ichGibt es ein Tool zum automatischen Generieren von Anorm-Parser-Kombinatoren?
case class Model(
id:Int,
field1:String,
field2:Int,
// a bunch of fields omitted
)
val ModelParser:RowParser[RegdataStudentClass] = {
int("id") ~
str("field1") ~
int("field2") ~
// a bunch of fields omitted
map {
case id ~ field1 ~ field2 //more omissions
=> Model(id, field1, field2, // still more omissions
)
}
}
Jedes Datenbankfeld wird vier (!) Mal wiederholt, bevor das Ganze definiert ist. Es scheint, als ob der Parser halbautomatisch aus der Fallklasse abgeleitet werden könnte. Irgendwelche Tools oder andere Techniken, um die Arbeit hier zu reduzieren?
Danke für alle Hinweise.
Ich habe genau das gleiche Problem von anorm verwenden. Ich vermute, dass die Antwort darin besteht, Anorm überhaupt nicht zu benutzen. Ich nehme an, dass Slick (früher ScalaQuery) der Weg nach vorn ist, indem man Makros verwendet, um den Standard zu reduzieren. Leider benötigen Makros Scala 2.10. Siehe auch: http://stackoverflow.com/questions/11379608/play-framework-slick-scalaquery-tutorial –