Re: "Can't get primary key from temporary id" :(

From: Joseph Schmidt (joseph_schmidt7..ahoo.com)
Date: Wed Apr 22 2009 - 10:53:47 EDT

  • Next message: Michael Gentry: "Re: "Can't get primary key from temporary id" :("

    >> I'd be interested in hearing what others have to say... feasible given
    >> the current cayenne stack?
    >
    > The problem is that the original poster is trying to use Cayenne like he
    > uses pure SQL and
    No, I'm not.
    Like I mentioned in earlier posts, I'm using ObjRelationships and all
    the Cayenne goodies. Just that for some properties that are not
    needed/fetched by the application itself (but are required for various
    reasons: legal, admin, etc.) those values also must be written inside
    the same transaction in there, so that externals tools/applications can
    access them in the required format (e.g. once a week).

    If we take only the Audit part: years ago it was done with stored
    procedures and triggers. Now because the business logic migrated more
    and more from the DB level(to upper more abstract levels), there's not
    enough info at the low trigger level to do it, so the ORM needs to do it
      - in this case: Cayenne if it's possible.

    > he hasn't demonstrated how he would even achieve what
    > he wants with pure SQL (hint: LAST_INSERT_ID() is the mysql specific way
    > of getting the last id. His other approaches just don't work. But even
    > LAST_INSERT_ID() would probably create race conditions with multiple
    > concurrent users.)
    Of course I demonstrated. The snippet in the parent just works with
    MySQL (with InnoDB of course).
    There's no need for a last_insert_id(), since the PK are
    "autoincrement". Inside the same transaction, the consequent selects
    will simply pick the correct values (generated by autoincrement). This
    is how MySQL is mostly used.

    > There is however a solution to relationships or attributes which need to
    > be added to 75% of the tables in the database: inheritance. In this case
    > vertical inheritance is the appropriate choice. We are just now testing
    > the excellent work Andrus has done in this area and we have all the
    > basic parts of inheritance working in ROP.
    This sounds interesting.

    thanks,
    Joseph.



    This archive was generated by hypermail 2.0.0 : Wed Apr 22 2009 - 10:54:51 EDT