RE: Deletion of obejcts

From: Fredrik Liden (flide..ranslate.com)
Date: Mon Nov 19 2007 - 14:31:30 EST

  • Next message: Jan Lendholt: "RE: Deletion of obejcts"

    Hi Jan,

    Before assuming there's something wrong with the framework let's take a
    moment to consider that there may be something wrong with the code. :-)

    Deletion is one feature that definitely should work as you would expect.
    Seems the reverse call is working for some reason.
    Review the relationships in the model again and make sure the generated
    objects are up-to-date. I've encountered the same problem before but
    that had to do with some incorrectlty specified obj relationships.

    Btw, I'm assuming you have (1..n)from Booking to Extra. And one to one
    (1..1) from Extra to Booking.

    Fredrik

    -----Original Message-----
    From: Jan Lendholt [mailto:jlendhol..otmail.com]
    Sent: Monday, November 19, 2007 11:48 AM
    To: use..ayenne.apache.org
    Subject: Deletion of obejcts

    Hey folks,

    I got pretty frustrated in the meantime with cayenne, as i think there
    are happing some pretty ugly thingsin cayenne's internals.

    At first, I again need help on deleting objects with relationships.

    Let's say I've got one table called "booking" with its entity Booking.
    And I've got another table extras with entity Extras.

    The relationship is from booking to Extras one to many (1-n entries in
    Extra for one booking entry).
    I've set both relationships with delete rule to nullify.

    Now, sime pseudo-code:

    Booking booking = ...;

    List<Extras> extras = booking.getExtrasArray();

    for (int i= 0;...)
    {
        booking.getDataContext().deleteObject(extras.get(i));
        
    }

    commitChanges();

    Now, the data are deleted from the database.
    But if I do a booking.getExtrasArray(); again, it still contains the
    deleted objects; it seems as if they were cached or so :-/
    Even an booking.RemoveFromExtras(extras.get(i)) won't work.

    Hiow does the deletion work correctly? I really don't understand why
    cayenne won't manage that automatically, for it would be quite logic to
    remove deleted objects form the object graph.

    Well, some words about the "ugly things": We had some really strange
    errors coming up which are at the end quite logic, but do not help
    finding the problem so wen spent about 3 hours to find it.
    We deleted an entity in the modeler and recreated it. Unfortunately,
    there was a reference missing. So cayenne just threw an index out of
    bounds exception. I really don't understand such a behaviour either :/
    To me, such kind of errors should be handeled and analyzed automatically
    by a framework, e.g. like spring does. Ok, that's it for now. Hope you
    still like me :-D

    Tahnks a lot in advance & kind regards form Hamburg!

    Jan

    _________________________________________________________________
    Importieren Sie ganz einfach Ihre E-Mail Adressen in den Messenger!
    http://messenger.live.de/community/neuekontakte_adressimport.html



    This archive was generated by hypermail 2.0.0 : Mon Nov 19 2007 - 14:32:03 EST