Thank you Andrus,

Yes, I do not throw the exception myself. But, how am I going to handle
the exception thrown by Cayenne? Or how can I retrieve the error message
from the validationResult when a ValidationException is thrown, so that
I can print it in the GUI?

Is the following correct?

    @Override
    protected void validateForSave(ValidationResult validationResult) {
      super.validateForSave(validationResult);

      if(getCompanyName().equalsIgnoreCase("")) {

          validationResult.addFailure(new ValidationFailure() {

                @Override
                public Object getSource() {
                    return this;
                }

                @Override
                public Object getError() {
                    return Company.CNAME_PROPERTY;
                }

                @Override
                public String getDescription() {
                    return "My error message";
                }
            });
      }
    }

Nikos

Στις 10-03-2009, ημέρα Τρι, και ώρα 18:16 +0200, ο/η Andrus Adamchik
έγραψε:
> The code example looks about right. However this is probably what's  
> wrong: "When a specific condition is not met, a ValidationException is  
> thrown.". You should not throw the exception yourself. Just add an  
> error to the validationResult, and let Cayenne throw it later.
> 
> Andrus
> 
> 
> On Mar 10, 2009, at 5:03 PM, Νίκος Παράσχου wrote:
> 
> > Hello,
> >
> > I implemented validateForSave(ValidationResult validationResult) in  
> > one
> > of my ObjEntities. When a specific condition is not met, a
> > ValidationException is thrown.
> >
> > How can I handle this ValidationException?
> >
> > The following doesn't work (I get: ValidationException is not thrown
> > anywhere inside block try{}):
> >
> > try {
> >     mycontext.commit();
> > }
> > catch(ValidationException vex) {
> >     ...
> > }
> >
> > Thank you,
> > Nikos
> >
> >
> >
> 

Reply via email to