cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: Cayenne 3.0 cache RefreshQuery for NamedQuery
Date Tue, 20 Jul 2010 15:16:32 GMT
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.


Mime
View raw message