Unregistered Objects

From: Peter Karich (peatha..ahoo.de)
Date: Fri Aug 10 2007 - 10:03:46 EDT

  • Next message: Mike Kienenberger: "Re: Unregistered Objects"

    Hallo,

    as discussed here [1] and there [2].
    I am seeking for a solution where the following works:

    Room r = new Room();
    getContext().registerNewObject(r);

    Meeting m = new Meeting();
    r.addMeeting(m); //[3]

    I get heavy memory problems in my calculations, while doing the
    following procedure 100,000 times: I create a meeting, calculate sth.
    and remove it. Cayenne forces me to register all the 'meetings' and will
    reference them although I don't need them anylonger. But I don't know
    when I won't need them.

    So one solution comes from Mike Kienenberger as discussed before and
    another solution could be to create sth. like a readonly context, where
    I could copy the results in a normal DataContext if I am done. So can I
    simply put the objects into the ObjectStore by a WeakReference or should
    I know more about the internals. (I think I should!)
    May be a readonly context could even improve performance, because of the
    nonexistent 'registering' overhead.

    Now my questions are:
    1. Is there already a (similar) solution for the ReadOnlyContext?
    2. Will cayenne implement Mike Kienenberger's solution? Or others? Can I
    open a JIRA issue/feature request [3]?
    3. Are there other ORM's that solve this. (Not worth to exchange, but
    worth to know :-)
    4. Could JPA help me here or will cayenne silently 'add the meetings' as
    in normal cayenne setup?

    Bye,
    Peter.

    [1]
    http://objectstyle.org/cayenne/lists/cayenne-user/2007/03/0181.html

    [2]
    http://objectstyle.org/cayenne/lists/cayenne-user/2007/04/0054.html

    [3]
    Where the user can decide if a context does then
    "throw an explicit exception", "add m silently and make it persistent"
    or "add m silently, but don't make persistent", if an unregistered
    object like 'm' will be added to a registered one like 'p' (or the other
    way around)
    And without registering one object (2 unregistered) cayenne shouldn't
    throw NPE's.



    This archive was generated by hypermail 2.0.0 : Fri Aug 10 2007 - 09:56:49 EDT