Właśnie zaczynam od Anorm i kombinatorów parsera. Wygląda na to, że jest strasznie dużo kodu standardowego. Na przykład: MamCzy istnieje narzędzie do automatycznego generowania kombinatorów analizatorów Anorm?
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
)
}
}
Każde pole bazy danych powtarza się cztery (!) Razy, zanim cała rzecz zostanie zdefiniowana. Wygląda na to, że parser powinien być w stanie wywnioskować półautomatycznie z klasy case. Jakieś narzędzia lub inne techniki sugerujące zmniejszenie pracy tutaj?
Dzięki za wszelkie wskazówki.
Mam dokładnie ten sam problem z użyciem anorm. Podejrzewam, że odpowiedź nie polega na używaniu anorm w ogóle. Zauważyłem, że Slick (wcześniej ScalaQuery) jest drogą do przodu, używając makr, aby zmniejszyć boom. Niestety, makra wymagają Scala 2.10. Zobacz także: http://stackoverflow.com/questions/11379608/play-framework-slick-scalaquery-tutorial –