【发布时间】:2012-10-23 15:49:06
【问题描述】:
我刚刚开始使用 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
)
}
}
在定义整个事物之前,每个数据库字段都会重复四 (!) 次。似乎解析器应该能够从案例类中半自动推导出来。有什么工具或其他技术可以建议减少这里所涉及的工作?
感谢您的任何指点。
【问题讨论】:
-
我在使用异常时遇到了完全相同的问题。我怀疑答案是根本不使用异常。我认为 Slick(以前是 ScalaQuery)是前进的方向,使用宏来减少样板。不幸的是,宏需要 Scala 2.10。另见:stackoverflow.com/questions/11379608/…
标签: playframework anorm