Re: Cleaning up inheritance tests

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Sat Mar 29 2008 - 13:33:35 EDT

  • Next message: Andrus Adamchik (JIRA): "[jira] Commented: (CAY-1013) the RefreshQuery does not refresh LOCAL_CACHE queries"

    On Mar 29, 2008, at 3:16 PM, Kevin Menard wrote:

    > Essentially, what I'm seeing is that there is not a 1:1 correlation
    > between
    > relationships and their reverses.

    True. A very good point. From what I can tell this may be another way
    to tell what "redundant relationships" are.

    In the case described both relationships are equally valid reverse
    relationships. I wouldn't even call the situation ambiguous - it is
    just two clearly defined relationships instead of one like we assumed
    in the past.

    So where do we go from here? There are two ways: we either change the
    API to reflect 1:N natire of reverse relationship (and deal with it
    everywhere throught the framework, e.g by setting multiple reverse
    relationships inside CayenneDataObject, etc.) or disallow redundant
    mapping explicitly. Either way it is a good idea to acknowledge this
    scenario explicitly in some way, so that users know what they are
    dealing with.

    A lazy person in me votes for the later option. Or maybe not that
    lazy? I always liked my object graph structure to avoid any
    inconsistency (e.g. assume relationship cardinality that DB does not
    enforce) and redundancy (e.g. RelatedEntity double relationships over
    the same set of joins). So mentally I never allowed myself to map
    anything like that, and never felt the need to do so. So maybe we
    shouldn't enable this scenario, complicating the framework
    significantly, just because we can?

    Andrus



    This archive was generated by hypermail 2.0.0 : Sat Mar 29 2008 - 13:34:08 EDT