私はサーバントでpersistent-postgresqlを使用しようとしています。永続的に `get`と` toSqlKey`を使用する
私はUser
モデルを持っています。
IDを取得し、そのIDを持つユーザーを返すエンドポイントが必要です。
toSqlKey
を使用してInt64
をKey
に変換してget
にすることができます。私はselectList
のエラーCouldn't match expected type ‘PersistEntityBackend (Entity User)’ with actual type ‘SqlBackend’
使用して正常に動作を取得コンパイルしようとする
oneUser :: Int64 -> App (Entity User)
oneUser userId = do
maybeUser <- runDb $ get $ toSqlKey userId
case maybeUser of
Nothing ->
throwError err404
Just user ->
return user
:
My機能は次のようになります。
allUsers :: App [Entity User]
allUsers = runDb $ selectList [] []
私が間違っていることを教えてください、そして、私はこれのようなものを将来見なければならないところを教えてください。 this github projectから取ら
runDb :: (MonadReader Config m, MonadIO m) => SqlPersistT IO b -> m b
runDb query = do
pool <- asks getPool
liftIO $ runSqlPool query pool
:私は
runDb
がどのように見えるstackageなどに/ hackage上のライブラリの正しいバージョンをget
を見つけることができませんでした。
'let maybeUser = Nothing'はそこで何をしていますか?それはタイプミスですか? – leighman
これは実験の残り物です:-)私はもう一度それをテストし、それはその行なしで動作します。 – ErikR
ありがとうございます。エンティティデータコンストラクタは、私が探していたものです。 – leighman