0
我试图在servant中使用persistent-postgresql。永久使用`get`和`toSqlKey`
我有一个User
模型。
我想要一个端点,它需要一个id并返回带有该id的用户。
根据其他答案,我可以使用toSqlKey
将Int64
转变为Key
以提供给get
。
我的功能看起来像:
oneUser :: Int64 -> App (Entity User)
oneUser userId = do
maybeUser <- runDb $ get $ toSqlKey userId
case maybeUser of
Nothing ->
throwError err404
Just user ->
return user
当我尝试编译我的错误Couldn't match expected type ‘PersistEntityBackend (Entity User)’ with actual type ‘SqlBackend’
使用selectList
工作正常。
allUsers :: App [Entity User]
allUsers = runDb $ selectList [] []
请告诉我我做错了什么,我应该在未来看看这样的东西。我找不到get
上hackage /库对stackage权等版本
runDb
样子:
runDb :: (MonadReader Config m, MonadIO m) => SqlPersistT IO b -> m b
runDb query = do
pool <- asks getPool
liftIO $ runSqlPool query pool
什么是'let maybeUser = Nothing'在里面?这是一个错字吗? – leighman
这是来自实验的剩余物:-)我只是再次测试它,它没有这条线。 – ErikR
谢谢。实体数据构造函数是我一直在寻找的。 – leighman