Re: AUTO_PK_SUPPORT, mysql and join tables

From: John Armstrong (siberia..mail.com)
Date: Sun Mar 28 2010 - 15:06:32 EDT

  • Next message: Andrus Adamchik: "Re: AUTO_PK_SUPPORT, mysql and join tables"

    Thanks Andrus!

    I have worked around it for now by populating the AUTO_PK_TABLE as required
    so Cayenne can lock and unlock it (in case anyone else is having this
    problem).

    John-

    On Sun, Mar 28, 2010 at 12:00 PM, Andrus Adamchik <andru..bjectstyle.org>wrote:

    > I just wrote a unit test, and it looks like indeed in the case of a
    > flattened relationship with "Database-generated" PK, AUTO_PK_TABLE is
    > accessed, although after that Cayenne does the right thing and builds a
    > query based on an auto-incremented PK, ignoring what's returned from
    > AUTO_PK_TABLE. So this is still a bug, albeit a minor one, not affecting the
    > app correctness. I will open a bug report.
    >
    > Andrus
    >
    >
    >
    > On Mar 28, 2010, at 6:56 PM, John Armstrong wrote:
    >
    > Hi Andrus,
    >> I downgraded to 3.0M6 from RC2 a few weeks ago to troubleshoot some
    >> problems. I tested this in both M6 and RC2 with the same results.
    >>
    >> I have a few other join tables that are similar and exhibit the same
    >> behavior.
    >> Tx!
    >> J
    >>
    >> Tthe flattened relationship is defined as :
    >>
    >> <db-relationship name="userprojectsArray" source="PROJECT"
    >> target="USERPROJECTS" toMany="true">
    >> <db-attribute-pair source="ID" target="PROJECT"/>
    >> </db-relationship>
    >>
    >> <db-relationship name="userprojectsArray" source="USER"
    >> target="USERPROJECTS" toMany="true">
    >> <db-attribute-pair source="ID" target="PGUSER"/>
    >> </db-relationship>
    >>
    >> <db-relationship name="toProject" source="USERPROJECTS" target="PROJECT"
    >> toMany="false">
    >> <db-attribute-pair source="PROJECT" target="ID"/>
    >> </db-relationship>
    >> <db-relationship name="toUser" source="USERPROJECTS" target="USER"
    >> toMany="false">
    >> <db-attribute-pair source="PGUSER" target="ID"/>
    >>
    >>
    >> On Sun, Mar 28, 2010 at 7:36 AM, Andrus Adamchik <andru..bjectstyle.org
    >> >wrote:
    >>
    >> Odd. Join table with its own (non-propagated) PK should work the same as
    >>> any other table. Which vesrion of Cayenne is this and are you using
    >>> flattened relationships across the join table?
    >>>
    >>> Andrus
    >>>
    >>>
    >>> On Mar 28, 2010, at 9:43 AM, John Armstrong wrote:
    >>>
    >>> Hi all,
    >>>
    >>>> I am using mysql with all database generated pks and auto_increment.
    >>>>
    >>>> This works fine for all tables except join tables. When accessing a join
    >>>> table cayenne tries to access the AUTO_PK_TABLE rather then relying on
    >>>> the
    >>>> auto_increment.
    >>>>
    >>>> My join tables are configured identically :
    >>>>
    >>>> <db-entity name="USERPROJECTS" catalog="pgi">
    >>>> <db-attribute name="CREATIONDATE" type="TIMESTAMP" length="19"/>
    >>>> <db-attribute name="ID" type="INTEGER" isPrimaryKey="true"
    >>>> isGenerated="true" isMandatory="true" length="10"/>
    >>>> <db-attribute name="PGUSER" type="INTEGER" length="10"/>
    >>>> <db-attribute name="PROJECT" type="INTEGER" length="10"/>
    >>>> </db-entity>
    >>>> <obj-entity name="Userprojects" className="com.pgi.common.Userprojects"
    >>>> dbEntityName="USERPROJECTS">
    >>>> <obj-attribute name="creationdate" type="java.util.Date"
    >>>> db-attribute-path="CREATIONDATE"/>
    >>>> <obj-attribute name="id" type="java.lang.Integer"
    >>>> db-attribute-path="ID"/>
    >>>> </obj-entity>
    >>>>
    >>>> Any ideas?
    >>>>
    >>>> John-
    >>>>
    >>>>
    >>>
    >>>
    >



    This archive was generated by hypermail 2.0.0 : Sun Mar 28 2010 - 15:07:09 EDT