쿼리 매개 변수에서 사용하기 위해 원하는 매퍼를 검색하는 방법은 무엇입니까?리프트의 모든 매퍼에서 이름으로 필드 가져 오기
제 경우에는 필자의 'desired-field'가 value = 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]]
(여기에 전달되는 사용자 인스턴스)의 실제 매퍼를 지정하는 저를 강제로. 나는 그것이 단지 '사용자'가 아닌 모든 매퍼에서 작동하도록하고 싶습니다. 나는 각 매퍼가 .fieldByName()
기능은 일부 예외를 throw하는 경우는 내가 원하는 그 경우에 필드가 없을 수 있음을 이해 asInstanceOf[MappedField[_,_]]
와
그것은 작동하지 않습니다, 그것은 허용합니다. 그러나 적어도 제출 된 사람들에게는 효과가있을 것입니다.
foo[Users,String](Users)
감사합니다. 이는 사소한 typecasting 변경으로도 작동 할 수 있습니다. defFoo [A <: Mapper [A], T] (modelObject : A) = { valfield = modelObject.asInstanceOf [Mapper [A]]. 필드 이름 ("userName"). ]] modelObject.asInstanceOf [MetaMapper [A]]. (By, (field, "dummyUser".asInstanceOf [T]) } – vkantiya