У меня появляется досадное сообщение об ошибке при попытке вставить новый элемент в связи «многие ко многим» с использованием JPA 2.0, SpringMvc 3.0.
У меня есть таблица с состояниями и еще одна с персонами. Человек может быть связан со многими государствами, а государство - со многими людьми.
В этом конкретном случае у меня есть listOfStates, а затем человек, и я хотел бы вставить эти элементы в мои отношения многие ко многим.
Отношения ManyToMany (в таблице 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, что я звоню с моего контроллера
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(myState);
}
}
getEntityManager().getTransaction().commit();
getEntityManager().close();
} catch (RuntimeException re) {
getEntityManager().close();
throw re;
}
Самое смешное, что этот код работает нормально, когда я не вставляю данные с веб-страницы. Что я здесь не так делаю? У меня уже есть некоторые лица и состояния в БД.
Сообщение об ошибке полного стека:
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.
Любой указатель был бы очень признателен. Заранее всем спасибо.