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