Hello,

we have a strange siuation where collections are *NOT* updated in the object cache 
(org.apache.ojb.broker.cache.ObjectCacheDefaultImpl).

Situation:
Object A has many B (1 to n)
Object B has many C ( 1 to n)
A.getBs() -> auto-delete="true"
B.getCs() -> auto-delete="true"

We insert an A, many Bs connected to a, many Cs connected to Bs (n * many Cs to one B)
Everything in a sinlge broker transaction.
When deleting A in another broker stransaction, all other Bs and Cs are deleted, too.

*BUT* when we select a B by Identity, add another C to it and store it,
we cannot delete A anymore, because it gets a constraint violation from the database 
(it did not delete the newly created
C before deleting the connected B).
When we disable cache, everything is ok, CachePerBroker also.

We found out that the B instance we get from a call broker.getObjectByIdentity is not 
contained in the collection of
A.getBs() (it's equal but not same ==).

If we set refresh="true" the delete is successful - but it loads the data from DB -> 
*BAD* performance.
We want to read the refreshed data directly from cache.

Is it possible to do refresh from cache ? Or should the "ObjectCacheDefaultImpl" do 
this automatically on collection access ?

Note: we do B.getCs().add(C)

Any help would be appreciated,

Klaus Richarz
Hamburger Berater Team GmbH
Hamburg, Germany


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to