Hi,

I am currently trying to do the following in Cayenne 3.0.2:

 * fetch an object A
 * delete some related objects which are related to A in an n:m relation
 * add new objects to A (same n:m relation)

I have undergone a couple of java.util.ConcurrentModificationException and org.apache.cayenne.validation.ValidationException exception without being able to fix them. Here is some code, but a general hint on how to achieve that (especially when to do commits) would be much appreciated.

 * Class Forecast
 * Class LineItem
 * Class ForecastCondendingLineItem (n:m relation between Forecast and
   LineItem)

I have an object F of class Forecast which I have pulled from the database. Now I try to delete the n:m relations like this:

for(ForecastContendingLineItem temp : F.getForecastContendingLineItemArray()) {
  F.removeFromForecastContendingLineItemArray(temp);
  context.deleteObject(temp);
}

This results in the ConcurrentModificationException. I also tried this:

context.deleteObjects(F.getForecastContendingLineItemArray());

There is no exception, but I do not see any DELETE statements in the log either (probably I shoudn't!?). Then later on I try to add new n:m relations like this:

relation = config.context().newObject(ForecastContendingLineItem.class);
            relation.setToForecast(_forecastItem);
            relation.setToLineItem(contendingLineItem);
            relation.setUsedImpressions(0L);
            relation.setOsi(0L);

But this results in the following a ""Validation failure for ch.goldbach.lib.ForecastContendingLineItem.toForecast: "toForecast" is required."" exception although my feeling is that I do set the ToForecast relation through "setToForecast", no?

Anyone can help me out?

Thanks,
  Tobias.

Reply via email to