lift - 从电梯中的任何映射器中按名称检索字段

标签 lift mapper

我们如何从任何映射器中检索所需的文件以便在查询参数中使用它。

就我而言,我想找到我的“期望字段”具有值 = somevalue 的记录。

它尝试了以下方式

foo(Users)

// foo defined here...

def foo ( modelObject:Mapper[_])={

    var field =modelObject.fieldByName("UserName").openTheBox.asInstanceOf[MappedField[_,Users]]
    var requiredUser = modelObject.find(By(field, "dummyUser")

}

但它迫使我在 asInstanceOf[MappedField[_,Users]] 中指定实际的 Mapper (用户实例在这里传递)。我想让它适用于任何映射器,而不仅仅是“用户”。

它不适用于 asInstanceOf[MappedField[_,_]]
我了解每个 Mapper 可能没有我想要的字段,在这种情况下,如果 .fieldByName()函数应该抛出一些异常,这是可以接受的。但至少对于那些有备案的人来说,它应该可以工作。

任何人都可以帮助我...

最佳答案

def foo[A<: Mapper[A],T](modelObject: A) = {
  val field = modelObject.asInstanceOf[Mapper[A]].fieldByName("userName").openTheBox.asInstanceOf[MappedField[T, A]]
  modelObject.asInstanceOf[MetaMapper[A]].find(By(field, "dummyUser".asInstanceOf[T])
}

当你打电话时你能做这样的事情:
foo[Users,String](Users)

关于lift - 从电梯中的任何映射器中按名称检索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8266108/

相关文章:

scala - 如何使用IntelliJ Idea创建SBT项目?

hadoop - 通过分布式缓存访问Pig中的文件

lift - 为什么 MappedStringIndex 不包含在 Mapper 的 fieldList 中

Java 作用域错误

hadoop - 在 MapReduce 中,如何在处理 X 记录后停止 reducer

json - 使用 Specs2 测试 json 数据

Scala Lift 几个 https 问题

scala - 如何在 Lift 中反序列化 DateTime

java - 反序列化具有键变量 jackson map ObjectMapper 的 JSON 文件

scala - 提升:如何使用设计人员友好的模板构建表单?