selectOneManyを限られた成功で動作させようとしています。
私は次のデータベースモデルを持っています
User
email Text
verkey Text Maybe
verified Bool
password Text Maybe
UniqueUser email
date UTCTime
deriving Show
Competence
parent CompetenceId Maybe
title Text
UniqueCompetence title
deriving Show Read
UserCompetence
competence CompetenceId
user UserId Eq
UniqueUserCompetence user competence
deriving Show Read
ハンドラーからのコード
mmember <- runMaybeT $ do
id <- MaybeT $ maybeAuth
user <- MaybeT . runDB . get . entityKey $ id
Entity memberId member <- MaybeT . runDB . getBy . UniqueMember . userEmail $ user
competences <- lift . runDB . runJoin $ (selectOneMany (UserCompetenceUser <-.) userCompetenceUser)
return (member,competences)
の最初の; 大きな型アノテーションを追加せずにこのコードを実行することはできませんが、これは本来あるべきことですか?
competences <- lift . runDB . runJoin $ (selectOneMany (UserCompetenceUser <-.) userCompetenceUser :: SelectOneMany SqlPersist (UserGeneric SqlPersist) (UserCompetenceGeneric SqlPersist))
第二に; コンピテンシーの種類は何ですか。理想的には、[エンティティコンピテンシーIDコンピテンシー]で終わりたいです。
最後に、'user'のコンピテンシーのみを取得するために、上記の結合にフィルターを追加するにはどうすればよいですか?