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