Thanks for your answer, Marcin!

2006/6/28, Marcin Skladaniec <[EMAIL PROTECTED]>:

Welcome Nikolai !

If I get you right, you want to commit data regardless of validation,
but log all validation exceptions.


yes, that is correct :)

You can call validateForSave() manually, get the failures, and than
commit with setValidatingObjectsOnCommit flag off.


this proceed  i have  already implemented, in the moment like that:

SelectQuery selQueryTab1 = new SelectQuery("Tab1");
DataObjectList dataObjectsInTab1 = new DataObjectList(dataContext
               .performQuery(selQueryInterface));

int nSize = dataObjectsInTab1.size();
for(int i=0; i<nSize; i++)
{
    dataObjectTab1 = (Tab1) dataObjectsInTab1.get(i)
    dataObjectTab2 = (Tab2) dataContext.createAndRegisterNewObject("Tab2");
    //here copy data from dataObjectTab1 into dataObjectTab2
    try
    {
       dataObjectTab2.validateData();
    }
    catch(ValidationException vex)
    {
       //here log validation faults
    }

}

//and hier commitChanges
dataContext.commitChanges();

//////////////////////////////////////////////
the validationData()-Method looks like that:

public void validate() throws ValidationException
{
 //here data validation, and if that faults throw new
ValidationException...
}

////////////////////////////////////////////////////


thus, I use not the validationForSave()-Method, but i find it unfortunate,
that cayenne have this automated mechanism, which i cannot use...:(

Therefore was also my ask, whether it can be automated with the
validationForSave()-method...


Marcin
PS: this might be helpful http://objectstyle.org/confluence/display/
CAYDOC/DataObject+Validation


thank you for the tip ;), the doku i saw;)

Nikolai

On 28/06/2006, at 5:01 PM, Nikolai Raitsev wrote:

> Hello
> I am new here
> and sorry for my English:)
>
> I have  searched  the mailing lists,  but not found possible answer
> for my
> question.
> Here is my question, maybe everybody can help me:
>
> how can I execute commitChanges()-Method, with a lot of
> ValidationExceptions?
>
> For the moment I implemented validateForSave-Method for my
> CayenneDataObject.
>
> the following happens:
>
> I have 2 tables: 1. table with 1000 datasets and 2. table without
> data.
>
> on DataObject from 2. table i have validateForSave-method
>
> if i copy data from 1.table into 2.table and make commit like this:
> try
> {
> dataContext.commitChanges();
> }
> catch(ValidationException vex)
> {
> System.out.println(vex.getValidationResult().getFailures().size());
> }
> i have a correct number from validation faults... but the 2.table
> is empty.
>
> if i call (before commitChanges())
> dataContext.setValidatingObjectsOnCommit(false);
>
> then i have 1000 datasets in second table, but no information above
> the
> validation faults
>
> Wat can I do? I need the data in 2. table and the information about
> validation faults I would like only log...
>
> i hope i have my question clear verbalized...
> thanks for help,
>
> Nikolai Raitsev

-------------------------->
ish
http://www.ish.com.au
Level 1, 30 Wilson Street Newtown 2042 Australia
phone +61 2 9550 5001   fax +61 2 9550 4001



Reply via email to