cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lachlan Deck <lachlan.d...@gmail.com>
Subject Re: weird problems with context
Date Sat, 02 Jun 2007 02:24:30 GMT
Hi Marcin,

On 02/06/2007, at 11:43 AM, Marcin Skladaniec wrote:

> I'm having a strange problem. When executing this bit of code:
>
> List categories = aContext.performQuery(new SelectQuery 
> (Category.class));
> if (categories.size() != 0) {
> 	for (int categoriesCount = 0; categoriesCount < categories.size();  
> categoriesCount++) {
> 	 	Category cat = (Category) categories.get(categoriesCount);
> 		logger.debug("context equal ? " + cat.getObjectContext().equals 
> (aContext));
> 	}
> }

Try this:
logger.debug("context equal ? " + aContext == cat.getObjectContext());

The spanner in the works here (on the server-side) is the use of the  
ObjectContextCallbackInterceptor (see bottom of http:// 
cayenne.apache.org/doc/lifecycle-callbacks.html) which doesn't  
override equals.

Thus, you might also want to try:
if (aContext instanceof ObjectContextCallbackInterceptor)
	logger.debug("context equal ? " + ((ObjectContextCallbackInterceptor) 
aContext).getContext() == cat.getObjectContext());
else
	logger.debug("context equal ? " + aContext == cat.getObjectContext());

(ps, svn up... I've added it to our ObjectContextCallbackInterceptor  
subclass ;-) But it'll be worth submitting a bugreport for this.

> the contexts are not equal, and I cant find the reason why !
>
> I found this problem, because the perPersist() callback is not  
> fired when I do
> cat.getObjectContext().newObject(SomeEntity.class)
> but it is when
> aContext.newObject(SomeEntity.class)
> to add complexity, postPersist() and other callbacks are fired in  
> both cases.

with regards,
--

Lachlan Deck



Mime
View raw message