2
오늘 아침에 Yesque 앱에서 Esqueleto를 설정하기 시작했습니다. 나는 정말 LeftOuterJoin을 수행하려고 시도하고 있지만, 기본을 작동시키기 위해 쿼리를 상당히 단순화했습니다. 나는 그것을 얻을조차 수 없다. Database.Persist.Query와 충돌이 없는지 확인하기 위해 일부 쿼리 advice from a Github issue을 따라 Yesod를 가져 오지 않는 별도의 파일로 쿼리를 추출했습니다. Esqueleto를 구성 할 때 누락 된 것이 있습니까?내 모델로 Esqueleto를 설정하는 동안 오류가 발생했습니다.
FWIW, 나는 Yesod 1.4.0, Persistent 2.1 & Esqueleto 2.1을 사용하고 있습니다. 여기
Queries.hs:9:15:
No instance for (Database.Esqueleto.Internal.Sql.SqlSelect
(SqlExpr (Entity UrlEntry), SqlExpr (Entity UrlEntryData))
(Entity UrlEntry))
arising from a use of ‘select’
In the expression: select
In the expression:
select
$ from
$ \ (entry `InnerJoin` entryData)
-> do { on
$ entry ^. UrlEntryId ==. entryData ^. UrlEntryDataUrlEntryId;
return (entry, entryData) }
In an equation for ‘findEntries’:
findEntries
= select
$ from
$ \ (entry `InnerJoin` entryData)
-> do { on
$ entry ^. UrlEntryId ==. entryData ^. UrlEntryDataUrlEntryId;
.... }
내 모델입니다 :
이
내가 겪고있어 오류가 발생하면이 기능을 변경해야findEntries :: SqlPersistT Handler [Entity UrlEntry]
findEntries = select $ from $ \(entry `InnerJoin` entryData) -> do
on $ entry ^. UrlEntryId ==. entryData ^. UrlEntryDataUrlEntryId
-- where_ (entry ?. UrlEntryUserId ==. valkey authId)
return (entry, entryData)
몰라,하지만 난 여기, 내 장난감 학습 - yesod 프로젝트에 esquelito을 사용하고 있습니다 : https://github.com/bburdette/hackstarter/blob/master/Handler/Project.hs 나는 그것 esquelito 1.4 또는 뭔가를 사용하여 생각 (nixos에 컴파일 그래서 패키지 버전과 조금 wierd 수 있습니다). – Bzzt