开发者

javax.validation.ConstraintViolationException: Bean Validation constraint(s) violated on preUpdate validation

开发者 https://www.devze.com 2023-03-08 03:24 出处:网络
I\'m having an annoying error message while trying to insert new element in a many to many relationship using JPA 2.0, SpringMvc 3.0.

I'm having an annoying error message while trying to insert new element in a many to many relationship using JPA 2.0, SpringMvc 3.0.

I have a table with States and another one with Persons. A person can be linked to many states and a state to many persons. In this particular case, I have a listOfStates and then a person and I would like to insert those elements in my many to many relationships.

ManyToMany Relationship (in table STATE)

    //bi-directional many-to-many association to Appointment
    @ManyToMany(cascade=CascadeType.ALL)
    @JoinTable(
name="PERSON_STATE"
, joinColumns={
    @JoinColumn(name="PERSON_ID", nullable=false)
    }
, inverseJoinColumns={
    @JoinColumn(name="CODE_STATE", nullable=false)
    }
)

DAO Code THAT I'm calling from my controller

try{    
    getEntityManager().getTransaction().begin();            
    getEntityManager().persist(myPerson);                       

    IStateDAO stateDAO = new StateDAO();

    for (int i=0; i<listOfStates.length; i++){
        State myState = stateDAO.findState(listOfStates[i]);
        if (myState != null){                   
            myState.getPersons().add(myPerson);
            getEntityManager().persist(开发者_如何学CmyState);
        }
    }

    getEntityManager().getTransaction().commit();           
    getEntityManager().close();         

} catch (RuntimeException re) {
    getEntityManager().close();
    throw re;           
}

The funny thing is that this code is working fine when I'm not inserting data from a web page. What i am doing wrong here? I already have some persons and states in the DB.

Full Stack Error Message:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is javax.validation.ConstraintViolationException: Bean Validation constraint(s) violated while executing Automatic Bean Validation on callback event:'preUpdate'. Please refer to embedded ConstraintViolations for details.


javax.validation.ConstraintViolationException: Bean Validation constraint(s) violated while executing Automatic Bean Validation on callback event:'preUpdate'. Please refer to embedded ConstraintViolations for details.

Any pointer would be really appreciated. Thanks in advance you all.


wow! got it! I had to change the validation-mode in my persistence.xml from Auto to NONE which basically tells the app not to used the bean validation at all. Error messages are gone and my DAO works well.


The Exceptions states that an JSR 303 Bean Validation is used, and Hibernate is configured (Persistence.xml) to check them before updating anything.

JSR 303 Bean Validation are annotations like:

  • javax.validation.constraints.NotNull
  • javax.validation.constraints.Size
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号