나는 서번트와 함께 persistent-postgresql을 사용하려고합니다.영구적으로`get`과`toSqlKey` 사용
나는 User
모델을 가지고 있습니다.
id를 사용하여 해당 ID를 가진 사용자를 반환하는 끝점을 갖고 싶습니다.
다른 답변에 따르면 나는 get
에 공급하는 Key
내로 Int64
을 설정하는 toSqlKey
를 사용할 수 있습니다.
oneUser :: Int64 -> App (Entity User)
oneUser userId = do
maybeUser <- runDb $ get $ toSqlKey userId
case maybeUser of
Nothing ->
throwError err404
Just user ->
return user
은 내가 사용 selectList
의 Couldn't match expected type ‘PersistEntityBackend (Entity User)’ with actual type ‘SqlBackend’
잘 작동 오류를 얻을 컴파일 할 때 : 같은
내 기능을 보인다.
allUsers :: App [Entity User]
allUsers = runDb $ selectList [] []
내가 잘못하고있는 부분과 앞으로 이런 부분을 봐야하는 곳을 알려주십시오.
runDb :: (MonadReader Config m, MonadIO m) => SqlPersistT IO b -> m b
runDb query = do
pool <- asks getPool
liftIO $ runSqlPool query pool
이
this github project에서 촬영 : 나는 hackage에
get
/
runDb
의 모습 stackage 등의 라이브러리의 올바른 버전을 찾을 수 없습니다.
거기에'let maybeUser = Nothing'이 뭐예요? 그건 오타예요? – leighman
그것은 실험에서 남은 것입니다 :-) 방금 다시 테스트했고, 그 라인없이 작동합니다. – ErikR
감사합니다. 엔티티 데이터 생성자는 내가 찾고 있던 것이다. – leighman