Re: [jira] Updated: (CAY-477) Support for preordered relationships

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Thu Mar 04 2010 - 06:45:45 EST

  • Next message: Andrey Razumovsky: "Modeler save problems"

    I agree with the query vs. relationship comparison. Unfortunately the
    mapping solution will correspond to a mapped query, vs. query created
    in the code.

    It is only easy to implement if we allow the list to go unordered on
    changes of its objects. Which I think is ok, as I mentioned earlier.

    Andrus

    On Mar 4, 2010, at 2:55 AM, Andrey Razumovsky wrote:

    > The problem is that explicit query allows orderings, while indirect
    > (via
    > Artist.getPaintings()) does not (the same can be said about e.g.
    > prefetches
    > though). So, if I want some array to be sorted (which is quite
    > often) I have
    > to create queries for to-many orderings. Since I often use
    > reflection-based
    > invocations, I have to create new methods, like getOrderedPaintings(),
    > moreover, bother about caching the data. IMO the feature is easy to
    > implement (most is in the patch, actually) and worth it. Also note
    > that
    > we've seen several same wishes on the user list
    >
    > artist.getPaintings(Comparator/Ordering) is fine, but we can't
    > generate that
    > methods for every relationship, and more generic methods will lose
    > things
    > like Java Generics advantages.
    > My vision is that this feature will be used for relationships that are
    > ordered is same way [by default] in every context - e.g. I want
    > people to be
    > sorted by name everywhere.
    >
    > 2010/3/4 Aristedes Maniatis <ar..aniatis.org>
    >
    >> On 4/03/10 8:28 AM, Andrus Adamchik wrote:
    >>
    >>> Also here is a reason why I don't find ordering of relationships
    >>> particularly useful is that things like ordering are context
    >>> dependent
    >>> ("context" in a general sense)... The same mapping can be used by
    >>> different UI frontends with different ordering requirements.
    >>>
    >>
    >> Having a default ordering for ObjEntities defined in the model is
    >> what
    >> Rails does. Any time you fetch that entity, be it directly through
    >> a Query
    >> or via a relation, you get the results back with that ordering.
    >>
    >> Personally I don't see the point. Ordering in the database is very
    >> useful
    >> if you are paging the results. Or using a limit. But when following
    >> relations, neither of those things applies, so you may as well just
    >> do it in
    >> memory once you have the list returned.
    >>
    >> Perhaps a simplified notation might be useful though:
    >>
    >> artist.getPaintings(Comparator/Ordering)
    >>
    >>
    >>
    >> Ari
    >>
    >> --
    >> -------------------------->
    >> Aristedes Maniatis
    >> GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
    >>
    >
    >
    >
    > --
    > Andrey



    This archive was generated by hypermail 2.0.0 : Thu Mar 04 2010 - 06:46:29 EST