Ok, I'll try to change the second argument of the Paginator. I'll post the result later.
Thank you. Le jeudi 12 juin 2014 11:06:11 UTC+2, Christophe COEVOET a écrit : > > Le 11/06/2014 17:40, 'Jasper N. Brouwer' via doctrine-user a écrit : > > In the first query, DISTINCT is used to fetch unique ids. The ORDER BY > is in there because it's in your query, but theoritically it isn't needed > here. This query should fetch _all_ ids, so the order isn't relevant. > > It's strange though there's a ROWNUM in the first query, as far as I > know it shouldn't be there. > > > > The second query is the one that will actually retreive the results that > get hydrated. There should be no DISTINCT in there, and the ROWNUM should > be. > > > > PS: I've no experience with Oracle (or Doctrine in combination with > Oracle), so maybe someone else can elaborate on the ROWNUM in the first > query? > > > The first query does not retrieve all ids. It retrieves the paginated > ids for the elements which should be returned. So the ORDER BY is needed > here, otherwise you will get random elements in your results. > Applyign the LIMIT must be done on the id query without joins. this is > precisely why it is done. If you fetch join a collection in your query, > we cannot apply a limit on it directly, because a single object will > span multiple result row (one per element in the collection) because of > how joins work. > > Note that if your DQL query does not fetch join a collection (i.e. it > only joins toOne relations or the toMany relations are only used in the > WHERE clause and not in the SELECT clause), you can use the second > argument of the Paginator constructor to tell it it can do the > pagination in a single query rather than 2. > > -- > Christophe | Stof > > -- You received this message because you are subscribed to the Google Groups "doctrine-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/doctrine-user. For more options, visit https://groups.google.com/d/optout.
