cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nikolai Raitsev" <nikolai.rait...@gmail.com>
Subject Re: commitChanges and ValidationExceptions
Date Wed, 28 Jun 2006 09:15:06 GMT
Thanks for your answer, Marcin!

2006/6/28, Marcin Skladaniec <marcin@ish.com.au>:
>
> 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
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message