Re: delete via jdbc

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Mon Jun 07 2010 - 15:04:52 UTC

  • Next message: Nishant Neeraj: "querying vs using relationship list and iterate"

    Invalidate should hollow the objects, but keep their references in the
    context (they shouldn't resolve to committed though, so I am surprised
    about that).

    DataContext also has a method "unregisterObjects" (not a part of
    ObjectContext interface) that should forget about the objects in a
    given context, clear the shared cache, and send invalidate event to
    peer contexts.

    Andrus

    On Jun 7, 2010, at 7:58 AM, Tore Halset wrote:

    > Well, processSnapshotChanges did not solve the problem either. I am
    > now doing deleteObjects() after deleting them via plain jdbc. It is
    > not pretty, but works well as long as the objects are in state
    > COMITTED.
    >
    > - Tore.
    >
    > On Jun 7, 2010, at 12:27, Tore Halset wrote:
    >
    >> Hello.
    >>
    >> This one seem to work much better.
    >>
    >> ((DataContext)
    >> ctxt).getObjectStore().getDataRowCache().processSnapshotChanges(this,
    >> Collections.EMPTY_MAP, deletedIds,
    >> Collections.EMPTY_LIST,
    >> Collections.EMPTY_LIST);
    >>
    >> - Tore.
    >>
    >> On Jun 7, 2010, at 09:27 , Tore Halset wrote:
    >>
    >>> Hello.
    >>>
    >>> I am deleting some rows via jdbc and want to update the cayenne
    >>> stack with that information. After issuing
    >>> ctxt.invalidateObjects(...) the cayenne objects for the deleted
    >>> rows still have persistence state comitted. Is there a better
    >>> trick than invalidateObjects(...)?
    >>>
    >>> - Tore.
    >>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Mon Jun 07 2010 - 15:05:25 UTC