Re: Cayenne 3.0 cache RefreshQuery for NamedQuery

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Tue Jul 20 2010 - 15:16:32 UTC

  • Next message: Evgeny Ryabitskiy: "Re: Cayenne 3.0 cache RefreshQuery for NamedQuery"

    Ok, now I finally see what you are saying (sorry for being so
    slow :-)) Yes, a listener will only be notified of entity events and
    running a SQLTemplate won't cause such an event.

    So how do we solve it? I would like to avoid tying a "query execution
    event" directly to cache refresh. Maybe instead we can attach this new
    type of events (at the beginning EJBQL/SQLTemplate events) to the same
    set of listeners as entity events? A listener can be defined to do a
    cache refresh of a certain group, or do something else entirely. Even
    the events can be defined in terms of specific entities. E.g. "query X
    generates 'post-update' event for entity Y" ... or not :-) Something
    to think about...

    > Idea was to create such architecture where "Persistent" (DBMS related)
    > layer is separate from Java logic and caching could be handled by only
    > map.xml changes.

    The note below is a bit of an aside from the main topic. Just a
    general observation.... Interestingly, I have a somewhat opposite
    problem in my apps - I have lots of ad-hoc queries created dynamically
    in the code, and a number of different object modification flows
    working over the same set of entities. So I need different listeners
    for the same entity events across different apps, and as a result I am
    finding that mapping "events" in XML is too inflexible, and I am more
    in favor of in-code configuration of those. I guess at the end we'll
    allow both styles, and allow extra XML files to be merged in the
    shared mapping to address that.

    Andrus

    On Jul 20, 2010, at 5:51 PM, Evgeny Ryabitskiy wrote:
    > Thx, for your reply.
    >
    > Now, I see only events related with Entity manipulations. Is there a
    > way to add listener for NamedQuery execution?
    >
    > As I understand Event listeners could be configured in some "static"
    > section while Cayenne configuration initialization...
    > It's not so bad until you have ~30 cashed tables and almost 100-200
    > queries to that tables.
    > Problem that it's had to monitor that all Update queries got their
    > listener when this information is decomposed between Java Code and XML
    > with SQL Templates.
    >
    > Idea was to create such architecture where "Persistent" (DBMS related)
    > layer is separate from Java logic and caching could be handled by only
    > map.xml changes.
    >
    > Evgeny.



    This archive was generated by hypermail 2.0.0 : Tue Jul 20 2010 - 15:17:07 UTC