Re: Status of MySQL AUTO_INCREMENT Support?

From: Gary Affonso (glist..reywether.com)
Date: Tue Jan 18 2005 - 16:03:40 EST

  • Next message: Andrus Adamchik: "Re: Testing Spring + Cayenne Integration / Architectural Doubts"

    Thanks Andrus! I'll give it a try.

    - Gary

    On 1/18/05 12:37 PM, "Andrus Adamchik" <andru..bjectstyle.org> wrote:

    > Hi Gary,
    >
    > Current M1 already contains a "fake" support for autogenerated columns ...
    > This is mostly workarounds for SQLServer to allow current Cayenne to work
    > on top of auto-increment schema without throwing exceptions... With MySQL
    > this worked even before M1.
    >
    > I promised to roll out the "real" support for a while, but it turned out
    > to be a bigger change than originally envisioned. Mainly because of the
    > issues with managing the object graph during commit when the some keys are
    > not known before the commit....
    >
    > Now after two paragraphs of noise, here is the good news ;-)
    > Auto-generated PKs mostly work in the last nightly build (01/18). You are
    > more than welcome to try it out. No adapter extentions are needed. Just
    > open your project in the Modeler, select MySQL adapter, and mark PK
    > columns (DbAttributes) as "Auto" in the new Modeler.
    >
    > I say "mostly work" as there are a few things that still have to be
    > cleaned up:
    >
    > (1) Modeler schema reverse/forward engineering ignores auto increment. So
    > you have to check the checkbox manually, and also manually update the
    > column property in the DB (very easy with phpMyAdmin)
    >
    > (2) One [rather uncommon] scenario is broken - If a dependent object
    > obtains it key form another (master) object and master uses autincrement,
    > you can't replace one master with another for dependent. This is uncommon
    > as dependent objects are usually tied to their master for their life (e.g.
    > UserDetail is never reassigned to a different User).
    >
    > There maybe other special cases that break .... I am doing some
    > refactoring to make everything more consistent, but M2 may go out even
    > before this is done, as IMO it is usable in its current state.
    >
    > Andrus
    >
    >
    >> I'm evaluating Cayenne for an current project. It's a fairly large,
    >> existing, database that uses MySQL AUTO_INCREMENT to handle the primary
    >> key fields. Switching to Cayenne's "pk table" just won't work, there's
    >> a LOT of legacy data there I just cannot change.
    >>
    >> But everything else in Cayenne looks great, and I'd vastly prefer an
    >> alternative to Hibernate (which I'm using now) and it's constant
    >> irritations (XML hell, code-generation difficulties, etc.). I swear,
    >> using that product is like death-by-1000-irritants, particularly for
    >> bottom-up efforts.
    >>
    >> I read back through the Cayenne archives and it looks like support for
    >> database-generated PK's (such as MySQL's AUTO_INCREMENT) is slated for
    >> 1.2, which is now at Milestone 1 with Milestone 2 being worked on.
    >>
    >> So...
    >>
    >> A few of questions:
    >>
    >> 1) What is the status for support of db-based PK generation in 1.2? Is
    >> it there?
    >>
    >> 2) Does (or will) 1.2 come with a MySQL adaptor that directly implements
    >> support for native-pk generation?
    >>
    >> 2a) Or is the plan to support the retrieval of db-generated keys in an
    >> architectural sense, but still leave it as an exercise for the user to
    >> subclass the MySQL adaptor?
    >>
    >> Thanks much. I'll keep dealing with Hibernate, for now, but I'm very
    >> much hoping Cayenne can save me soon. :-)
    >>
    >> - Gary
    >
    >
    >



    This archive was generated by hypermail 2.0.0 : Tue Jan 18 2005 - 16:03:45 EST