bval-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Benson <gudnabr...@gmail.com>
Subject Re: Bean Validation Issue....
Date Thu, 17 May 2012 20:03:05 GMT
Silly question:  does BaseDB2DataBean define a getter method for
acct_stat_cd, e.g.:

public String getAcct_stat_cd() {
  return acct_stat_cd;
}

Of course this method would be required for <getter> as well.  The
Bean Validation specification is designed to work with Java beans,
after all.  <field> is for fields declared on the <bean> class;
<getter> is for getter methods compliant with the Java beans
specification.  Looking at the code I fail to see how you would have a
problem with <getter> so long as one or both of these classes define
the getter method as I have described.

Matt

On Thu, May 17, 2012 at 2:52 PM, Pedro Quiñonez
<pedro.quinonez@gmail.com> wrote:
> Thanks Matt,
>
> I tried using the <getter> form with the same results. Now I proves with
> BVal 0.4
>
> Regards!!
>
> 2012/5/17 Matt Benson <mbenson@apache.org>
>
>> Hi, Pedro.  In this case you should be using a <getter> instead of a
>> <field> in your XML-based constraint declarations (and, as it turns
>> out, that makes this a question for the user list ;) ).  It also looks
>> like you're not using the latest BVal release; we encourage you to
>> give Apache BVal 0.4 a try!
>>
>> Regards,
>> Matt
>>
>> On Thu, May 17, 2012 at 12:04 PM, Pedro Quiñonez
>> <pedro.quinonez@gmail.com> wrote:
>> > hi team members,
>> >
>> > Over last date I tried to use the Apache Bean Validation with two beans,
>> A
>> > extends the attributes and methods from B. The constraint configuration
>> in
>> > the contraint.xml file, use constraints over the A class fields and
>> methods
>> > that extend from B class.
>> >
>> > At the moment to execute the example i get the next exception:
>> >
>> > *Caused by: javax.validation.ValidationException:
>> > gsa.dsc.jsr303.bean.module.MM_SA_DataBean does not contain the fieldType
>> > acct_stat_cd*
>> >    at
>> >
>> org.apache.bval.jsr303.xml.ValidationMappingParser.processFieldLevel(ValidationMappingParser.java:360)
>> >    at
>> >
>> org.apache.bval.jsr303.xml.ValidationMappingParser.processMappingConfig(ValidationMappingParser.java:96)
>> >    at
>> >
>> org.apache.bval.jsr303.ApacheValidatorFactory.configure(ApacheValidatorFactory.java:121)
>> >    at
>> >
>> org.apache.bval.jsr303.ApacheValidatorFactory.<init>(ApacheValidatorFactory.java:105)
>> >
>> > The question is, the bean validation support validations over fields and
>> > methods that are extends from one class base?
>> >
>> > public class *BaseDB2DataBean *{
>> >
>> >    /** Variable estatus cuenta */
>> >    protected String acct_stat_cd = null;
>> >
>> > }
>> >
>> >
>> > *MM_SA_DataBean* extends *BaseDB2DataBean*{
>> >
>> > }
>> >
>> > *sa-constraints.xml*
>> >    <bean class="gsa.dsc.jsr303.bean.module.MM_SA_DataBean">
>> >
>> >                <field name="acct_stat_cd">
>> >
>> >            <constraint annotation="javax.validation.constraints.NotNull"
>> />
>> >
>> >                    <constraint
>> > annotation="javax.validation.constraints.Pattern">
>> >                        <element name="regexp">
>> >                            <value>AC</value>
>> >                        </element>
>> >                    </constraint>
>> >                </field>
>> >     </bean>
>> >
>> >
>> >
>> >    public static void main(String[] args) {
>> >        Validator validator =
>> > Jsr303ValidatorFactory.SINGLE_INSTANCE.getValidator();
>> >
>> >        MM_SA_DataBean bean = new MM_SA_DataBean();
>> >
>> >        bean.setAcct_stat_cd("DE");
>> >        bean.setPlattform("MOVISTAR");
>> >        bean.setTechnology("4G");
>> >
>> >        Set<ConstraintViolation<MM_SA_DataBean>> result = null;
>> >        Iterator<ConstraintViolation<MM_SA_DataBean>> it = null;
>> >
>> >            long init = System.currentTimeMillis();
>> >            result = validator.validate(bean);
>> >            long end = System.currentTimeMillis();
>> >
>> >            System.out.println("Tiempo ejecución: [" + (end - init)+ "]");
>> >
>> >        it = result.iterator();
>> >
>> >        while(it.hasNext()){
>> >            ConstraintViolation<MM_SA_DataBean> bean1 = it.next();
>> >            System.out.println("Valor:" + bean1.getInvalidValue() + "
>> > Mensaje:" + bean1.getMessage());
>> >        }
>> >    }
>>

Mime
View raw message