首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用Esqueleto如何处理列表类型?

用Esqueleto如何处理列表类型?

提问于 2018-01-15 08:10:00
回答 1关注 0查看 163

数据类型定义为:

代码语言:javascript
复制
data ComitteeView = CommitteeView { committeeId :: CommitteeId
                                  , committeeMembers :: [Person] 
                                  }

data CommitteesView = CommitteesView { committeeView :: [CommitteeView] }

有一个持久的模型:

代码语言:javascript
复制
Person
  name  Text

Committee
  name  Text

CommitteePerson
  personId    PersonId
  committeeId CommitteeId

可以很容易地创建一个查询,使用Esqueleto填充一个Committee teeView:

代码语言:javascript
复制
getCommitteeView cid = 
  CommitteeView <$> runDB $ 
    select $
      from (person `InnerJoin` pxc `InnerJoin` committee) -> do
        on  (committee ^. CommitteeId ==. pxc ^. CommitteePersonCommitteeId)
        on  (person ^. PersonId       ==. pxc ^. CommitteePersonPersonId)
        where_ (committee ^. CommitteePersonCommitteeId ==. val cid)
        return person

什么是有效的策略?我该如何简化这个代码?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档