This is a bug. Let me see if there is a quick fix.

https://issues.apache.org/cayenne/browse/CAY-1082

Andrus


On Jun 24, 2008, at 1:37 PM, Andrey Razumovsky wrote:

Hi!


I can't figure out how to make the refreshing query work with inserting or
deleting rows in database. For instance:


Artist a = ...

assert a.getPaintingsArray().size() == 0;


//here is direct insert into database a painting of artist a (artistid=a.id
)


RefreshQuery refresher = new RefreshQuery();

context.performGenericQuery(refresher);


assert a.getPaintingsArray().size() == 1; //that's false



Everything works perfect when I sql-update in database. When i sql- delete,
i do also get an exception like this:

org.apache.cayenne.FaultFailureException: [v.3.0M4 May 18 2008 16:32:02] Error resolving fault, no matching row exists in the database for ObjectId:
<ObjectId:Apkforecast, apkforecastid=3>

at org.apache.cayenne.BaseContext.prepareForAccess(BaseContext.java: 100)

at com.nic.rainbow.data.auto._Apkforecast.getDate(_Apkforecast.java: 29)

...and so on

when i try to iterate through related array


I'm using ROP if that helps. By the way, when i restart client, the data becomes correct, so i assume everything has changed correctly on a server.

If that's not supported, can you give me some advice to manually refresh the
desired relationships?


Thanks,

Andrey

Reply via email to