A ToManyList isn't a DataObject. It's a list of DataObjects. :)
Just treat it like a regular list.
Robert
On Jun 18, 2008, at 6/1811:18 AM , Chris Gamache wrote:
also........ :)
How do I deal with a ToManyList prefetch?
I'm getting a ClassCastException trying to cast a ToManyList to a
DataObject.
On Mon, Jun 16, 2008 at 10:36 AM, Chris Gamache <[EMAIL PROTECTED]>
wrote:
For clarification:
DataContext.invalidateObjects(...) What strategy would you use to
invalidate everything?
For .addPrefetch(String s), does s need to match the relation name in
the xml files?
And on a related note...
What does "Max. Number of Shared Objects" actually limit, and what
does the "Use Shared Cache" toggle do?
If I set my "Max. Number of Shared Objects" to zero, or unchecked
"Use
Shared Cache" would that force Cayenne to hit the database every time
a query was executed or a relation was fetched?
On Tue, Jun 10, 2008 at 3:03 AM, Andrus Adamchik <[EMAIL PROTECTED]
> wrote:
To control relationship refresh you can either use
DataContext.invalidateObjects(..) or plan a bit ahead and refresh it
together with the query that fetched the root object by using
prefetching on
that relationship. E.g.
someQuery.addPrefetch("relatedRows");
List rows = context.performQuery(someQuery);
Judging from your example the prefetch option should be exactly
what you
need.
Andrus
On Jun 9, 2008, at 11:08 PM, Chris Gamache wrote:
Using Cayenne 2.0.3 ...
I'm having problems when I use an accessor to get rows from a
related
table. It pulls fresh data the first time I use the accessor, but
if
data is modified outside of the Java application, it is not
reflected
the next time I use the accessor in a different execution stack
within
the same JVM.
List rowsA = context.performQuery(someQuery);
...
SomeTable dataSetA = rowA.getRelatedRows();
//object rowA and dataSetA and someQuery pass out of scope
...
//Data is Modified directly on the database, not in Java
application
...
List rowsB = context.performQuery(theSameQuery);
...
SomeTable expectedModifiedButGotSetA = rowB.getRelatedRows();
The primary key which the relation uses to get the related data
doesn't change from rowsA to rowsB. We're looking at the same
related
rowset, just updated data.
I would like to know what is the magic no-cache recipe to force
that
particular accessor to always pull fresh data from the database...
It appears that SelectQuery doesn't suffer from the same problem.
I'm sure there's some configuration switches that I can trip, but
there are several places caching policies can be modified and
several
confusingly similar yet different options to choose from.