You can try:
DataContext dc = DataContext.getThreadDataContext();
SelectQuery query = new SelectQuery(alert_subclass);
...
query.setRefreshingObjects(true);
...
List result = dc.performQuery(query);
Regards
Marcin
On 20/05/2006, at 8:05 AM, Jeff de Vries wrote:
I get the following compile error (I'm using Cayenne 1.2):
The method performQuery(Query) in the type DataContext is not
applicable for the arguments (SelectQuery, boolean)
I tried to find something equivalent for Cayenne 1.2 but didn't
recognize anything.
Gentry, Michael (Contractor) wrote:
Could you try: List result = dc.performQuery(query, true); And see
if it works better? Thanks, /dev/mrg -----Original Message-----
From: Jeff de Vries [mailto:[EMAIL PROTECTED] Sent: Friday, May
19, 2006 12:18 PM To: [email protected] Subject:
Re: Caching problem? It's pretty straightforward. In the following
code Person is the parent, and Alert is the child. There are
actually many Alert classes (I'm using Cayenne STI), so the
specific Alert class we're interested in is passed as a parameter.
Also, I forgot to mention that if we shut everything down, and
then restart, we do see the modified status (presumably because
Cayenne really had to go back to the database to get the data for
the child list). /** * Finds all Alerts of the given type sent to
the given person * * @param person * Person to find Alerts for *
@param include_hidden * If true, include hidden alerts as well *
@param alert_subclass * Class of alert to search for * @return
List of alert objects, of given type, for the given person */
protected static List findFor(Person person, boolean
include_hidden, Class alert_subclass) { DataContext dc =
DataContext.getThreadDataContext(); SelectQuery query = new
SelectQuery(alert_subclass); query.setQualifier
(ExpressionFactory.matchExp("toReceiver", person));
query.andQualifier(ExpressionFactory.matchExp("deleted", new
Boolean (false))); if (!include_hidden) query.andQualifier
(ExpressionFactory.matchExp("hidden",new Boolean (false)));
query.addOrdering("createDate",false); List result =
dc.performQuery(query); return result; } On May 19, 2006, at 6:05
AM, Gentry, Michael ((Contractor)) wrote:
Jeff, could you post the code where you are doing the second
query? Thanks! /dev/mrg -----Original Message----- From: Jeff de
Vries [mailto:[EMAIL PROTECTED] Sent: Friday, May 19, 2006
12:09 AM To: [email protected] Subject: Caching
problem? Simplified version: I have a parent table and a child
table, where the child table has a parent_id column and a status
column. I change the status in one of the child records and
commit the change. Later, I ask for the child records for the
given parent record, but the child record that I get back on
which I changed the status still has the *old* status instead of
the new status. If I look at the database, the child record does
have the new status (and in fact I can see the update and commit
as soon as I commit the child record change). Why is the parent
still seeing the old child status? An additional note is that I'm
not using parent.getChildArray() but rather a SelectQuery(Child)
that matches toParent to the parent I'm interested in. (This is
in Cayenne 1.2B2 using PostgreSQL 8.1) Thanks, Jeff