Re: Join splits

From: Mike Kienenberger (mkienen..mail.com)
Date: Thu May 01 2008 - 10:16:55 EDT

  • Next message: Kevin Menard: "Re: Client PK access"

    Aliases seem like a good idea. I know that when I implemented all of
    this, internally I had to set up an alias table, so it's a natural
    fit.

    On 4/30/08, Andrus Adamchik <andru..bjectstyle.org> wrote:
    > Now looking to add splits to SelectQueries, I am wondering if the approach
    > we discussed before is too "special case". To reiterate, the idea of a "join
    > split" (CAY-802), was to allow users to override the default behavior of
    > Cayenne which is to reuse all joins. Here is some in-depth discussion of
    > useful split scenarios:
    >
    >
    > http://objectstyle.org/cayenne/lists/cayenne-devel/2003/09/0096.html
    >
    > I am wading through archives trying to find the pipe ("|") semantics that
    > Giulio Cesare used for the splits, but IIRC it was something like this:
    >
    > rel1.rel2|rel3.rel4
    >
    > That's fine except that it is targeting a special case of matching a single
    > path against a collection of values. A more generic case would be multiple
    > overlapping but different expression paths. E.g.:
    >
    > rel1.rel2.rel3.rel4
    > rel1.rel2.rel3.rel5
    >
    > Split semantics, while rather concise and clear for its intended use,
    > doesn't help us in dealing with multiple overlapping paths... So how do we
    > handle those? One possible solution is to follow EJBQL idea and define
    > aliases for join paths. This way each alias for the same path generates a
    > separate chain of joins that can be reused if needed. E.g.:
    >
    > SelectQuery query = ...
    > query.addQualifierAlias("rel1.rel2", "a");
    > query.addQualifierAlias("rel1.rel2", "b");
    >
    > Then the following can be used as qualifier:
    >
    > a.x
    > a.rel4
    > b.y
    > b.rel5
    >
    > Any thoughts on that? Would that be better than the pipe sign? (and did we
    > discuss that before, and I am simply missing it)
    >
    > Andrus
    >
    >



    This archive was generated by hypermail 2.0.0 : Thu May 01 2008 - 10:17:34 EDT