【问题标题】:Select with list of keys Persistent (Yesod)使用持久键列表选择 (Yesod)
【发布时间】:2014-05-30 16:17:46
【问题描述】:

我需要使用 Persistent (Yesod) 从键列表中获取实体列表

假设我有一个Model 及其对应的ModelId。我有:

keys :: [ModelId]

我需要得到

models :: [Model]

目前最好的做法似乎是:

models' <- mapM get keys
models <- return $ Data.Maybe.catMaybes models'

有没有更有效的方法来做到这一点?持久化是否将获取请求排队或一一执行?

yesod persistent: get list of entities from list of keys 也有同样的问题,但我想知道这是否是最有效的方法。

【问题讨论】:

  • 我不知道 yesod 是如何执行请求的,但是您可以将此命令简化为 models &lt;- fmap catMaybes $ mapM get keys,这样您就没有中间的 models' 变量。

标签: haskell yesod persistent


【解决方案1】:

如果我很好地理解了你的问题,你可以通过尝试这样的方式来实现它:

models' <- selectList [ModelId <-. keys] []

通过使用mapM,您将查询数据库length keys 次,而selectList 执行单个查询。

【讨论】:

  • 啊。谢谢。不知道我可以使用 ModelId 来选择模型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多