2015-01-21 13 views
8

나는 scotty 웹 프레임 워크로 Persistent orm을 사용합니다.Haskell Persistent : 키가 정수 변수에있는 경우 키를 사용하여 db로부터 엔티티를 얻는 방법은 무엇입니까?

ID로 db로부터 가치를 얻고 싶습니다. 이 ID는 GET 요청에서 나에게 올 것입니다.

"키 엔티티"변수를 사용하고 "아마 엔터티"를 반환하는 "가져 오기"기능이 있습니다.

나는이 코드이며 매우 추한

k <- keyFromValues $ [(PersistInt64 myOwnIntVarFromRequest)] 
case k of 
    Left _ -> {-some processing-} 
    Right x -> do 
    t <- liftIO . runDb $ get (x::Key Post) --Post is one of my models 
    case t of 
     Nothing -> {-processing-} 
     Just x -> {-processing-} 

DB를에서 값을 얻기 위해 다음 코드를 사용합니다. 그러나 나는 그것을 더 잘하는 방법을 모른다.

나의 질문은 keyFromValues를 호출하지 않고 "Key Entity"유형의 변수를 얻는 방법이다.

PS 죄송 불쌍한 내 영어

답변

11

을 위해 당신은 그것에 대해 toSqlKey를 사용할 수 있습니다.

+0

답변 해 주셔서 감사합니다. –

+0

@ michael-snoyman : 키에 Int64 이외의 유형이 있다면 어떻게 될까요? –

+0

저는 실제로 유연한 기본 키 메커니즘에 익숙하지 않으므로이 문제를 처리하는 방법에 대해 조언 할 수는 없습니다. –